Gle*_*sov 6 xcode llvm ios automatic-ref-counting
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
Run Code Online (Sandbox Code Playgroud)
在Xcode 4.3上,一切正常,因为我只使用strong和unsafe_unretained修饰符.
我明白了,没有一个arc libs链接到我的应用程序.
我试图用libarclite_iphoneos.a手动链接,没有反应.我添加了-fobj-arc来链接标志,没有反应.
我想,iPhone 3g支持将在XCode 4.5中丢弃,而不是4.4.是这样吗?
我刚发现问题。错误是由于iRate库导致的,当我删除对此库的引用时,一切都开始工作。
更新:更新到最新版本后一切正常。感谢 @Nick Lockwood 的解释:在 iOS 上,arclite lib在执行 [class load] 方法之后加载。所以需要延迟初始化。在 iRate 中,他在 load 方法中插入了 PerformOnTheMainThread。
| 归档时间: |
|
| 查看次数: |
1836 次 |
| 最近记录: |