Jsonkit unerkannter Selektor während der Serialisierung
-
25-10-2019 - |
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?
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.