我有一个iPhone应用程序使用 json-framework . 我将一些代码(包括JSON框架源代码)从主项目移到了静态库中。当我这样做时,JSON框架停止编译成二进制文件(用类转储进行双重检查)。这会导致严重错误:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFString JSONValue]: unrecognized selector sent to instance 0x43897f0'
静态库中的其他所有内容继续正常工作。
显然,除非在链接器标志上撒上魔法灰尘,否则类别和静态库不会工作。根据A Technical Q&A ,您必须将-objc链接器标志添加到主项目(而不是库,如q&a中所述)。