“_UIApplicationDidEnterBackgroundNotification”,引自:链接时出错

时间:2010-10-08 23:33:03

标签: iphone ios4 three20 ios32

我在我的应用中使用了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是怎么回事 - 但是还没找到任何有意义的日志。感谢您的任何意见/答案。

3 个答案:

答案 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。