iPhoneOS 3.0で増えた機能を使いたいものの、iPhoneOS 2.2.1で動かなくなるのは困る。
そんな訳で、iPhoneOS 3.0上で実行されている時は、3.0向けの機能が使えて、iPhoneOS 2.2.1上で実行されている時は、今まで通りの機能を使えるようなバイナリは作れないのかと思って調べてましたが、さすがはNEXTSTEPの時代から歴史のあるObjective-C。意外とすんなりとできました。
ビルド方法はすんなり行ったものの、iPhoneOS 3.0でdeprecatedとなったメソッドを使っている部分は、少々苦戦しました。
そんな訳で、iPhoneOS 3.0向けの新機能を実装しつつ、iPhoneOS 2.2.1上でも動作する「和時計」アプリが大体できました。(先日アップロードした「和時計」が一向に配信開始になりませんが・・・)
あとはテストして、Appleへ提出するだけですが、そもそもこの作り方でAppleがOK出すのかが微妙に気になりますが、MacOS Xのアプリでは普通にやってる事のようなので、多分大丈夫じゃないかと。
どうすればiPhoneOS 2.2.1と3.0と両方で動くバイナリを作れるかは、また気が向いたら具体的に書くかも知れませんが、フレームワークのWeak Linkと、Objective-Cの特徴である動的結合がポイントでした。
最近のコメント