忍者ブログ

[PR]

2024年04月26日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

1つのコードでiPhone/iPod touch/iPadに対応する

2010年04月26日
1つのコードで全てのiPhone OSデバイスをサポートできればソースコードの管理が楽になります。今回の記事はそんな方法を紹介します。今後のことは分かりませんが、現状ではこの分岐方法を使えば全てのデバイスに対応するコードが書けます。まず例としてコードの一部を示します。

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {

// iPad

UIGraphicsBeginImageContext(CGSizeMake(900.0,675.0));

} else {

// iPhone or iPod touch(iPhone OS バージョン3.2以上)

UIGraphicsBeginImageContext(CGSizeMake(360.0,240.0));

}

#else

// iPhone or iPod touch(iPhone OS バージョン3.2未満)

UIGraphicsBeginImageContext(CGSizeMake(360.0,240.0));

#endif


始めの行のマクロでOSのバージョン判定を行います。iPhone OSのバージョンが3.2以上だと、次にユーザーンターフェースタイプの判定を行います。この2つの判定を組み合わせる事で実行されるデバイスによりアプリケーションの動作を変える事が出来ます。

この他にも[[UIDevice currentDevice] systemVersion]で返ってくる文字列を使って判定する方法もありますが、その方法はお勧めできません。その方法ではiPhone SimulatorでiPhone側の動作確認を行なおうとアクティブSDKを3.1.3などに切り替えた場合、iPad用のコードの中にiPhone SDK 3.2で追加されたメソッドがあると、そんな命令無いぞとビルドエラーが起きてしまうからです。
PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Trackback
トラックバックURL: