1

详细信息:我准备向 Apple 提交我的应用程序的更新。但是,我有一个疑问。我在我的一个类的标题中添加了以下代码...

#import <CoreTelephony/CTTelephonyNetworkInfo.h>

这在主要课程中......

if ([CTTelephonyNetworkInfo class]) {
    //Now do some telephony stuff ...

Telephony 适用于 iOS 4 及更高版本。我相信仍然在 iOS3 上的任何人都应该因为该if声明而没问题,但我无法测试它,因为我没有旧设备并且 XCode 4.2 没有旧模拟器。

我的 iOS 部署目标仍然是 3.0,我希望保持这种状态以确保每个人都可以使用我的应用程序。

问题:我的代码是否正确?我的 iOS 部署目标是否正确?我是否以正确的方式解决这个问题?

4

2 回答 2

0

The code is correct (As @SimonH points out, you used to need a NSClassFromString, but that changed with some version of the compiler, by the time the 4.0 SDK was released).

You also need to make sure you weak link CoreTelephony (or for that matter any framework not available on 3.x), so the binary won't attempt to load it when launching the app.

于 2012-08-03T15:50:55.567 回答
0

不,这不对。

if (NSClassFromString(@"CTTelephonyNetworkInfo") != nil)
{
    // use class
}
else
{
    // not available, deal with it.
}

是你应该使用的。使用您编写的应用程序只会崩溃,因为它不会找到 CTTelephonyNetworkInfo 类。此外,您应该确保已将 CorTele... 框架设置为可选。

于 2012-08-03T15:46:42.703 回答