我正在尝试创建一个通用的iPhone应用程序,但它使用的是仅在较新版本的SDK中定义的类.该框架存在于较旧的系统上,但框架中定义的类不存在.
我知道我想使用某种弱链接,但我能找到的任何文档都讨论了函数存在的运行时检查 - 如何检查一个类是否存在?
我需要弱化一些框架与我的目标.
但我找不到怎么做......
如果我尝试在3.2模拟器上运行我的项目,我会收到以下错误:
dyld: Library not loaded: /System/Library/Frameworks/iAd.framework/iAd
Reason : Image not found
Run Code Online (Sandbox Code Playgroud)
谢谢 !
我有一个主要针对3.0的iPhone应用程序,但是当它们可用时它会利用更新的API.代码是这样的:
if (UIApplicationDidEnterBackgroundNotification != NULL) {
[nc
addObserver: self
selector: @selector(irrelevantCallbackName:)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
}
Run Code Online (Sandbox Code Playgroud)
现在,根据Apple所说的一切,如果相关的API链接很弱,那么它将正常工作,因为动态链接器将评估UIApplicationDidEnterBackgroundNotification为NULL.除了它没有.应用程序编译,但一旦它命中if (UIApplicationDidEnterBackgroundNotification != NULL)它崩溃EXC_BAD_ACCESS.
这只是我需要设置的编译器标志的问题吗?或者我是以错误的方式来做这件事的?