Frage

Ich versuche, die Jsonkit -Bibliothek zu verwenden, und habe die Quelldateien in mein Projekt aufgenommen. Ich habe den Header jsonkit.h so angemeldet, dass die enthaltene Kategorie den Selektoren von JSondata und JSonstring angibt.

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

Aber zur Laufzeit erhalte ich den folgenden Fehler:

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

Warum fügt die Kategorie nicht die entsprechenden Methoden zu den Objekten der NSDictionary hinzu?

War es hilfreich?

Lösung

Ich beantworte meine eigene Frage, weil ich es gerade herausgefunden habe.

Mein Code ist Teil einer statischen Bibliothek, auf die aus einer anderen iOS -Anwendung verwiesen wird. Bei der Einbeziehung einer statischen Bibliothek, in der Kategorien exportiert werden, muss die Anwendung, die die Kategorie verwendet, mit dem Linker-Linker-Flag "-objc" verknüpft werden.

Andere Tipps

Während die akzeptierte Antwort das Problem für mich gelöst hat, ist es definitiv nützlich, zu verstehen, warum es (und warum dies nicht) der Fall war. Für einen detaillierteren Blick auf dieses Problem und mögliche Lösungen, Siehe diesen Beitrag.

Es ist ein bisschen wie ein N00B -Fehler, aber ich habe genau die gleiche Ausnahme gestoßen, als ich die Dateien jsonkit.h und jsonkit.m in mein Projekt importierte, aber das Feld nicht an das Ziel in Xcode hinzufügt.

Öffnen Sie jsonkit.m, zeigen Sie den Abschnitt "Dateiinspektor" des Dienstprogramms an und stellen Sie in der Zielmitgliedschaft sicher, dass neben Ihrer App ein Feld angezeigt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top