2009-06-23 5 views
4

たとえば、iPhoneにオーディオを録音できる自分のクラスを作成したとします。 iPhone OS 3.0は現在、Cocoa Touch Frameworkの一部としてその機能を提供しています。以前のバージョンとの互換性を維持しながらiPhone 3.0の機能を使用する最良の方法は何ですか?

iPhone OSバージョン2.2.1以前をサポートするために既存のクラスを使用することはできますが、同時にiPhone OS 3.0をサポートするためにCocoa Touch Frameworkが提供する新しいクラスを利用できますか?

答えて

4

のObjective-Cは非常にダイナミックな言語であるので、あなたは、3.0の機能の存在を2.xおよびクエリをターゲットにすることができます:

id pasteboard = [objc_getClass("UIPasteboard") generalPasteboard]; 
if (pasteboard) { 
    NSLog(@"Got pasteboard, we're clearly on 3.0+"); 
} else { 
    NSLog(@"Pasteboard not available, definitely 2.x"); 
} 
+0

これはすばらしいことで、実行しているOSのバージョンと、その結論に応じて異なるコードを実行してください。 – mclaughlinj

+0

これは、私が心に留めていたことの線に沿っています。しかし、OSのバージョンに直接問い合わせる方法はありますか? OSのバージョンの決定を特定の機能の存在に結びつけることは、私にとって脆弱だと感じている。 –

4

iPhoneプラットフォームのモバイルOSのアップグレード率が最も高いので、下位互換性について心配する必要はありません。 OS 3.0 APIに移行し、アプリで他にもすばらしいことをすることに集中しましょう。

人があなたのアプリを望んで2.2.1を持っていれば、アップグレードするだけで済みますし、iPhone OSもアップグレードするのが最も簡単なOSです。

+0

iPodを持っている場合を除き。すべてのアップグレードでiPodユーザーの費用は10ドルとなり、これまでのところ30ドルになった。 –

+0

ガードが良い点です。 $ 10は間違いなくiPod Touchの群衆を遅くする。私はアップグレードしないiPodユーザーの大部分があると思う。幸いにも、それはアプリを決して購入しない同じグループです!数週間のうちに、店のトップアプリのほとんどに3.0が必要だと思います。互換性については心配しません。 –

+0

iPod Touchユーザーの場合でも、看板は普及率が高いと指摘しています。http://tapbots.com/blog/news/iphone-os-30-adoption-rate – Hunter

関連する問題