既にリリースしているアプリで、iPhone OS 3.0で増えた機能を使いたい場合、iPhone ユーザーはOSのバージョンアップは無償なのでいいですが、iPod touchは有償なので、iPhone OS 2.2.1ユーザーの事を忘れてしまっていいのか気になると思います。
そんな時は、ちょっと面倒ですが、iPhone OS 3.0上で実行されるときは3.0向けの機能が使えて、iPhone OS 2.2.1上で実行される時は、2.2.1までで使える機能が使えるようなアプリを作る方法があります。
MacOS Xでは普通の方法のようですが、なかなか分かりやすくまとまってるページが無く、手探りでやってた部分もあったのですが、「和時計」で実装してAppleへ提出したところ、無事リリースされたので、基本的に問題無い方法だと思いますので、やり方をまとめてみたいと思います。
iPhone OS 3.0の新機能を使う場合、以下のどちらかで対応が異なります。
1)iPhone OS 2.2.1で存在していたクラスで、iPhone OS 3.0で追加されたメソッドを使いたい。
2)iPhone OS 3.0で新しく追加されたクラス(フレームワーク)を使いたい。
Objective-Cは動的結合が特徴の言語なので、1)2)ともに実行時に解決するようにする事で、iPhone OS 3.0上で実行された時は新機能を使うようにして、iPhone OS 2.2.1上で実行された時は、iPhone OS 2.2.1までで使える機能の範囲で実行するという事ができます。
次回以降、それぞれの具体的なやり方をまとめたいと思います。
※iPhoneアプリ開発に関する投稿を今から始めるiPhoneアプリ開発にまとめました。
最近のコメント