Question

Nous construisons une application iPhone de chat.

Lors de l'envoi du navigateur à l'iPhone un message de chat JSON:

    {"content":"Hi"}

L'iPhone reçoit:

    {"content":{"0":72,"1":105,"length":2}}

Mais, nous avons l'intention qu'il reçoive le même message.

Pour reproduire ce problème, installez d'abord Node.js et Redis. Puis:

  • Récupérer le code:

    git clone git://github.com/acani/acani.git
    cd acani
    git submodule update --init
    
  • Démarrer Redis sur le port par défaut.

  • De http://github.com/acani/acani-node :

    node acani-node-server.js # run node.js chat server
    # open index.html in a Google Chrome or Firefox and follow instructions.
    
  • Ouvrir Lovers.xcodeproj situé dans http: // github .com / acani / acani-chat / arbre / maître / Lovers2 / , et le changement LoversAppDelegate.m pour le chargement initial du ChatViewController au lieu du HomeViewController.

    homeViewController = [[HomeViewController alloc] init]; # comment out this line
    # change the next line to:
    navigationController = [[UINavigationController alloc] initWithRootViewController:[[ChatViewController alloc] init]];
    # Then, build & run.
    
Était-ce utile?

La solution

Nous avons compris. Ce n'était pas du tout iPhone ou Objective-C. L'erreur de conversion se passait sur le serveur Node.js. Nous avons oublié de mettre des guillemets autour des valeurs de chaîne de l'objet JSON, et donc la fonction JSON.stringify() JavaScript convertissait les chaînes comme indiqué ci-dessus ... sauf que nous étions en train de faire quelque chose comme: {"content":Hi}. Lorsque nous avons changé à: {"content":"Hi"}, il a bien fonctionné. Duhh ...

Autres conseils

Je suppose que vous devez échapper à la chaîne (JSON) étant envoyé, en utilisant stringByAddingPercentEscapesUsingEncoding et Unescape ensuite à la réception.

Les trois premiers chiffres sont 072 - en décimal que de de H '. Ce qui me fait penser à un «pourrait se perdre en raison de la transmission sans codage. Il y a d'autres choses contre cette théorie, mais je pense qu'il vaut la peine de regarder.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top