1

iOS プロジェクトで使用する静的ライブラリを構築しています。Web サービスから返された XML エンティティをデコードしたいと考えています。Google Toolbox for Macを入手して、次のファイルをプロジェクトに追加しました。

  • GTMDefines.h
  • GTMNSString+HTML.h
  • GTMNS文字列+HTML.m

次に、自分の .m ファイルでこれを行っています。

#import "GTMNSString+HTML.h"

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

コードは正常にコンパイルされますが、静的ライブラリを使用するアプリを実行すると、セレクターが認識されないNSInvalidArgumentExceptionことを訴えてクラッシュします。gtm_stringByUnescapingFromHTMLNSString

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 で同様の問題をいくつか見つけました。いずれの場合も、質問者はその後、リンカー設定を微調整することで修正したとコメントしていますが、どの設定を開示することはありませんでした。誰かがこれで私を助けることができれば、私は永遠に感謝します!

4

1 に答える 1

5

私はそれが-ObjC-all_loadフラグになると推測しています。

これらは、ライブラリ自体ではなく、ライブラリに再度リンクするアプリの「その他のリンカー フラグ」に追加します。

詳細については、http: //developer.apple.com/library/mac/#qa/qa2006/qa1490.htmlを参照してください。

于 2011-02-10T12:44:04.817 に答える