我在我的应用中使用了Three20库,我在应用链接期间看到了这个错误:
“_ UIApplicationDidEnterBackgroundNotification”,引自: lib中的_UIApplicationDidEnterBackgroundNotification $ non_lazy_ptr(TTBaseNavigator.o) (也许你的意思是:_UIApplicationDidEnterBackgroundNotification $ non_lazy_ptr) ld:未找到符号
我已经看到当我尝试为BASE SDK IOS 3.2模拟器而不是在IOS 4.1模拟器上构建时,会出现此问题。我尝试了以下设置无济于事:
Architecture for my project and ALL Three20 projects set to Optimized
Project Settings/Active Target - BaseSDK for my project and ALL Three20 projects set to IOS 3.2 Simulator
Architecture for my project and ALL Three20 projects set to Standard
Project Settings/Active Target - BaseSDK for my project and ALL Three20 projects set to IOS 3.2 Simulator
Architecture for my project and ALL Three20 projects set to Standard
Active Target - BaseSDK for my project and ALL Three20 projects set to IOS 3.2 Simulator
Project Settings - BaseSDK for my project set to IOS 4.1 Simulator
以下是有效的设置:
Architecture for my project and ALL Three20 projects set to Standard (or Optimized)
Active Target/Project Settings BaseSDK for ALL Three20 projects set to IOS 3.2 Simulator
Active Target/Project Settings BaseSDK for my project set to IOS 4.1 Simulator
我厌倦了尝试这些排列。真的很想了解wth是怎么回事 - 但是还没找到任何有意义的日志。感谢您的任何意见/答案。
答案 0 :(得分:2)
弱小的UIKit不必要地大大减慢了你的应用程序 - 不要这样做。
将Base SDK
设置为最高,然后将Deployment Target
设置为您要支持的最低操作系统。编译器将自动弱连接仅较低SDK中不可用的API。
请记住,如果您希望在较旧的操作系统上运行,则需要在使用之前检查新类。
答案 1 :(得分:1)
该符号在4.0 SDK中声明。你不能在iOS 3.x上使用该功能。你有两个选择:
1)目标iOS 4.0或更高版本
2)使用早期版本的three20,它是为了与目标sdk一起工作而构建的
答案 2 :(得分:0)
解决此问题的最佳方法是弱化与UIKit的链接。您可以在常规选项卡的项目/目标设置中执行此操作。在Linked Libraries部分中找到UIKit并将类型从Required设置为Weak。