Нераспознанный селектор при вызове Google Toolbox для Mac методом категории NSString в iOS - PullRequest
1 голос
/ 10 февраля 2011

Я создаю статическую библиотеку для использования в проекте iOS и хочу декодировать XML-объекты, возвращаемые веб-службой. Я взял Google Toolbox для Mac и добавил в свой проект следующие файлы:

  • GTMDefines.h
  • GTMNSString + HTML.h
  • GTMNSString + HTML.m

Тогда в моем собственном файле .m я делаю это:

#import "GTMNSString+HTML.h"

// then in one of my methods:
NSString *value = [anotherNSStringValue gtm_stringByUnescapingFromHTML];

Код компилируется нормально, но когда я запускаю приложение, использующее мою статическую библиотеку, оно вылетает с NSInvalidArgumentException, жалуясь, что селектор gtm_stringByUnescapingFromHTML не распознается для NSString:

2011-02-10 12:21:38.401 MyApp[20356:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString gtm_stringByUnescapingFromHTML]: unrecognized selector sent to instance 0x71403e0'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x0111bbe9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x012705c2 objc_exception_throw + 47
    2   CoreFoundation                      0x0111d6fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x0108d366 ___forwarding___ + 966
    4   CoreFoundation                      0x0108cf22 _CF_forwarding_prep_0 + 50
    5   MyApp                               0x00028dcf -[GSMyAppXMLParser parseData:] + 714
    // Rest of stack trace removed
)
terminate called after throwing an instance of 'NSException'

Я обнаружил несколько похожих проблем с переполнением стека, и в каждом случае спрашивающий впоследствии прокомментировал, что они исправили его, настроив настройку компоновщика, но не раскрывая, какую настройку! Если кто-нибудь может помочь мне с этим, я буду всегда благодарен!

1 Ответ

5 голосов
/ 10 февраля 2011

Я предполагаю, что это будут флаги -ObjC и -all_load.

Вы добавляете их в «Другие флаги компоновщика» приложение , которое связывает библиотеку, не сама библиотека.

Для получения дополнительной информации см .: http://developer.apple.com/library/mac/#qa/qa2006/qa1490.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...