JSONKit нераспознанный селектор при сериализации - PullRequest
2 голосов
/ 16 февраля 2012

Я пытаюсь использовать библиотеку JSONKit и включил исходные файлы в мой проект. Я включил заголовок JSONKit.h, чтобы включенная категория давала объектам NSDictionary селекторы JSONData и JSONString.

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

Но во время выполнения я получаю следующую ошибку:

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

Почему категория не добавляет соответствующие методы к объектам NSDictionary?

Ответы [ 3 ]

3 голосов
/ 16 февраля 2012

Я отвечаю на свой вопрос, потому что только что понял.

Мой код является частью статической библиотеки, на которую ссылается другое приложение iOS.При включении статической библиотеки, которая экспортирует категории, приложение, использующее категорию, должно быть связано с флагом компоновщика "-ObjC". ​​

0 голосов
/ 11 апреля 2013

Это ошибка n00b, но я столкнулся с точно таким же исключением, когда импортировал файлы JSONKit.h и JSONKit.m в свой проект, но не поставил галочку, чтобы добавить его к цели в XCode.

Откройте JSONKit.m, откройте раздел «Инспектор файлов» на панели «Служебные программы» и убедитесь, что рядом с вашим приложением установлен флажок.

0 голосов
/ 27 декабря 2012

Несмотря на то, что принятый ответ решил проблему для меня, понимание того, почему это произошло (а почему нет), безусловно, полезно. Для более подробного рассмотрения этой проблемы и возможных решений см. Этот пост .

...