Xcode 4.4,使用ARC for iOS 4.2构建应用程序

时间:2012-08-09 22:18:43

标签: ios xcode automatic-ref-counting llvm

Xcode 4.4,Mountain Lion,llvm 4.0编译器。我构建我的应用程序,它适用于ios5,ios6设备,但在带有ios 4.2的iphone 3g上我有这样的错误:

dyld: lazy symbol binding failed: Symbol not found: _objc_storeStrong
Referenced from: /var/mobile/Applications/68B78A19-71E6-4BDA-B997-B7DED4D02429/iGuides.app/iGuides
Expected in: /usr/lib/libobjc.A.dylib

dyld: Symbol not found: _objc_storeStrong
Referenced from: /var/mobile/Applications/68B78A19-71E6-4BDA-B997-B7DED4D02429/iGuides.app/iGuides
Expected in: /usr/lib/libobjc.A.dylib

在Xcode 4.3上,一切正常,因为我只使用strong和unsafe_unretained修饰符。

我知道,没有弧形库与我的应用程序相关联。

我试图用libarclite_iphoneos.a手动链接,没有反应。 我添加了-fobj-arc来链接标志,没有反应。

我想,iPhone 3g支持将在XCode 4.5中删除,而不是4.4。是这样吗?

2 个答案:

答案 0 :(得分:3)

我刚发现问题。错误是因为iRate库,当我删除对此lib的引用时,一切都开始工作。

更新:更新到最新版本后,一切都很好。谢谢@Nick Lockwood的解释:在iOS上,arclite lib在 [类加载]方法执行后加载。所以你需要延迟初始化。在iRate中,他在load方法中插入了performOnTheMainThread。

答案 1 :(得分:1)

尝试在其他链接标记中添加-fobjc-arc