仅在找到时加载框架(例如CoreTelephony.framework)

时间:2010-07-15 08:55:55

标签: iphone objective-c

我目前正在开发的应用程序需要在屏幕上显示运营商名称。我知道如何使用iOS 4.0中的CTCarrier类实现这一目标。但不幸的是,我的应用程序还需要在较旧的系统版本上运行(回到iOS 3.0)。这是我无法改变的要求。

从代码中这不应该是一个问题,因为我可以测试该类是否存在,并且仅在应用程序在4.0下运行时显示名称。但我遇到的问题是,只要我在项目中链接CoreTelephony框架,代码就无法在具有较旧系统版本的手机上运行。该应用程序将崩溃,并显示错误消息:

dyld: Library not loaded: /System/Library/Frameworks/CoreTelephony.framework/CoreTelephony
Referenced from: /var/mobile/Applications/6F3E2582-0364-42F4-9A65-D98B40987509/XYZ.app/XYZ
Reason: image not found

有没有办法在系统上找到框架时才加载框架?或者这是不可能的。

1 个答案:

答案 0 :(得分:4)

在您的项目中,转到目标信息/常规选项卡/链接库部分 - 为您的框架设置类型为弱