Question

Je suis en train d'utiliser la bibliothèque JSONKit et ont inclus les fichiers source dans mon projet. J'ai inclus l'en-tête JSONKit.h de sorte que la catégorie inclus donne NSDictionary objets les sélecteurs JSONData et JSONString.

  NSMutableDictionary* root = [NSMutableDictionary dictionary];
  [root setValue:@"CONNECT" forKey:@"command"];
  NSData* data = [root JSONData];

Mais lors de l'exécution, je reçois l'erreur suivante:

 -[__NSCFDictionary JSONString]: unrecognized selector sent to instance 0x784b870

Pourquoi la catégorie n'ajoute les méthodes appropriées aux objets NSDictionary?

Était-ce utile?

La solution

Je réponds à ma propre question parce que je compris.

Mon code fait partie d'une bibliothèque statique qui est référencée depuis une autre application iOS. En incluant une bibliothèque statique que les catégories d'exportation, l'application qui utilise la catégorie doivent être liés avec le drapeau de liaison « -ObjC ».

Autres conseils

Alors que la réponse acceptée résolu le problème pour moi, de comprendre pourquoi il l'a fait (et pourquoi il ne pourrait pas) est sans aucun doute utile. Pour un aperçu plus détaillé sur cette question et les solutions possibles, voir ce message .

Il est un peu une erreur de n00b, mais je suis tombé exactement la même exception quand je les fichiers importés JSONKit.h et JSONKit.m dans mon projet, mais n'a pas coché la case pour l'ajouter à la cible dans Xcode.

Ouvrir JSONKit.m, afficher la section Inspecteur du fichier du panneau Utilitaires, et dans l'adhésion cible assurez-vous qu'il ya une case cochée à côté de votre application.

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