1

詳細:アプリのアップデートをAppleに送信する準備ができました。しかし、私には疑問が1つあります。私のクラスの1つのヘッダーに次のコードを追加しました...

#import <CoreTelephony/CTTelephonyNetworkInfo.h>

そしてこれはメインクラスで..。

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

テレフォニーはiOS4以降用です。この声明により、まだiOS3を使用している人なら誰でも問題ないとif思いますが、古いデバイスがなく、XCode 4.2に古いエミュレーターがないため、テストできません。

私のiOSデプロイメントターゲットはまだ3.0ですが、誰もが私のアプリを使用できるように、この状態を維持したいと思います。

質問:私のコードは正しいですか?iOSの展開ターゲットは正しいですか?私はこれを正しい方法で行っていますか?

4

2 に答える 2

0

いいえ、ちがいます。

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

あなたが使うべきものです。あなたが書いたものを使用すると、CTTelephonyNetworkInfoクラスが見つからないため、アプリがクラッシュします。また、CorTele...フレームワークをオプションとして設定していることを確認する必要があります。

于 2012-08-03T15:46:42.703 に答える
0

コードは正しいです(@SimonHが指摘しているように、以前はが必要NSClassFromStringでしたが、4.0 SDKがリリースされるまでに、コンパイラのバージョンによって変更されました)。

CoreTelephonyまた、弱いリンク(または、3.xで使用できないフレームワーク)を確認する必要があります。これにより、アプリの起動時にバイナリがそれを読み込もうとしません。

于 2012-08-03T15:50:55.567 に答える