1

私はOSバージョンのiPhoneを持っています。2.0 アプリ ストアでは、すべてのアプリケーションを実行する必要があることを読みました 3.0 os.だから、アプリケーションを両方のファームウェアで実行するにはどうすればよいでしょうか。 3.0以上のos.現在、これを使用しています。

#if __IPHONE_3_0
cell.textLabel.text=cellValue;
[cell.textLabel setFont:[UIFont systemFontOfSize:15.0]];
[cell.textLabel setLineBreakMode:UILineBreakModeTailTruncation];
#else
cell.text=cellValue;    
[cell setFont:[UIFont systemFontOfSize:15.0]];
[cell setLineBreakMode:UILineBreakModeTailTruncation];  
#endif

両方のファームウェアで動作しますか

>= 3.0 OS 以下でアプリを実行したいのですが...助けてください

アプリケーションで非推奨のメソッドを確認するにはどうすればよいですか...この行は非推奨の cell.text=cellValue; としてしか表示されません

変更するものはありますか。iphone_sdk_3.0__leopard__9m2736__final.dmg という名前の新しい SDK をインストールしました

4

4 に答える 4

1

しばらく前に同様の投稿がありました。AppleのMailComposerサンプルを見て、3.0と2.xの両方のファームウェアをサポートするアプリの例を確認してください。

于 2009-09-23T06:30:50.417 に答える
1

上記のコードは、両方の OS セットでは実行されません。#if ステートメントを使用すると、基本的に、その特定のビルドの 1 つのバージョンの OS のコードが除外されます。つまり、ビルドする各バージョン (__IPHONE_3_0 を定義するバージョンと定義しないバージョン) は、もう一方のコードを除外します。

あなたがしているのは、__IPHONE_3_0 用にビルドされたものと ! __iPhone_3_0.

両方で実行される 1 つの実行可能ファイル、つまり 1 つのアプリをビルドする場合は、#if ステートメントをコンパイル時の #if ではなく、実行時の if に置き換える必要があります。

if (theOS >= kiPhone3)
   ....
else
   ....

3.0 のみのライブラリをリンクすることもできますが、実行時にフレームワークの可用性をテストし、メソッドが使用できない場合は呼び出しをスキップします。メソッドが利用可能かどうかを確認するための呼び出しと、クラスが利用可能であるかどうかを確認するための呼び出しがあります。

Class newClass = (NSClassFromString(@"NewClassName"));
    if (newClass != nil)

最後に、あなたが言及したものよりも新しいバージョンの SDK があります。

幸運を!

于 2009-09-23T07:07:14.657 に答える
0

2.0 (または 2.1、または 2.2.1 など) SDK に対してビルドする場合、Apple がその SDK のサポートを特に中止しない限り、その SDK およびそれ以降のバージョンで実行されます。App Store には、iPhone OS 2.x 以降で動作し、3.1 を実行している iPhone 3G でも問題なく動作するというアプリがたくさんあります。

于 2009-09-23T06:52:33.940 に答える
0

if-else ディレクティブは、コードの一部をコンパイラから隠すため、両方のソフトウェアで実行されません。

于 2010-03-18T23:16:58.553 に答える