2

Xcode 4.3.2 我写了一个静态库,使用 ARC。

当我把它放到一个项目中,并在 iOS 4.3 模拟器上测试。(基于iOS 5.1,部署目标4.3)

如果项目使用 ARC,它工作正常。

如果项目没有使用ARC,会遇到错误,比如:

dyld:惰性符号绑定失败:找不到符号:_objc_retainAutoreleasedReturnValue 引用自:/Users/cnzzmobile/Library/Application Support/iPhone Simulator/4.3.2/Applications/A4EEB0A0-AC16-402C-B426-46667225F66D/test.app/test 预期在:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation

dyld:找不到符号:_objc_retainAutoreleasedReturnValue 引用自:/Users/cnzzmobile/Library/Application Support/iPhone Simulator/4.3.2/Applications/A4EEB0A0-AC16-402C-B426-46667225F66D/test.app/test 预期在:/Applications/ Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/Frameworks/Foundation.framework/Foundation

我搜索了很多,但找不到可以解决这个问题的答案。

我删除了仅iOS5支持的jsonobjcet,-fobjc-arc也不起作用。

谢谢

4

2 回答 2

1

我发现在“其他链接器标志”处添加“-fobjc-arc”可以在基于 iOS 5.1 的 Xcode 4.3.2 上解决这个问题。因为 xcode 找不到支持 ARC 链接的库。

请注意:在“其他链接器标志”而不是“编译源”中添加“-fobjc-arc”。

但这仍然不适用于基于 iOS 4.3 的旧版本 Xcode 4(雪豹)。

我发现一些库可以在 ARC 和非 ARC 项目上工作,而无需添加任何特殊设置。我仍在等待答案如何做到这一点。使用纯 C 编写代码?

于 2012-06-15T15:11:49.633 回答
0

_objc_retainAutoreleasedReturnValue是 iOS 5.x 版本 arc 的一个功能。您正在尝试构建此框架并在 iOS 4.3 上运行它,这需要您为运行“ArcLite”框架的 iOS 4.x 指定和部署它。

于 2012-06-15T08:41:17.853 回答