在iOS中调用Google Toolbox for Mac NSString类别方法时无法识别的选择器

时间:2011-02-10 12:30:34

标签: iphone objective-c ios categories google-toolbox-for-mac

我正在构建一个用于iOS项目的静态库,我想解码从Web服务返回的XML实体。我抓住Google Toolbox for 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选择器:< / p>

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'

我在Stack Overflow上发现了一些类似的问题,在每种情况下,提问者随后评论说他们通过调整链接器设置来修复它 - 但没有透露哪个设置!如果有人能帮助我,我将永远感激不尽!

1 个答案:

答案 0 :(得分:5)

我猜这将是-ObjC-all_load标志。

您可以将这些内容添加到应用的“其他链接标记”中,该链接会再次链接到库,库本身。

有关详细信息,请参阅:http://developer.apple.com/library/mac/#qa/qa2006/qa1490.html