たとえば、iPhone でオーディオを録音できる独自のクラスを作成したとします。iPhone OS 3.0 では、その機能が Cocoa Touch Framework の一部として提供されるようになりました。
既存のクラスを使用して iPhone OS バージョン 2.2.1 以前をサポートすると同時に、Cocoa Touch Framework が提供する新しいクラスを利用して iPhone OS 3.0 をサポートするにはどうすればよいですか?
たとえば、iPhone でオーディオを録音できる独自のクラスを作成したとします。iPhone OS 3.0 では、その機能が Cocoa Touch Framework の一部として提供されるようになりました。
既存のクラスを使用して iPhone OS バージョン 2.2.1 以前をサポートすると同時に、Cocoa Touch Framework が提供する新しいクラスを利用して iPhone OS 3.0 をサポートするにはどうすればよいですか?
Objective-Cは非常に動的な言語であるため、2.xをターゲットにして、3.0の機能の存在を照会できます。
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");
}
iPhone プラットフォームは、どのモバイル OS よりもアップグレード率が高いため、下位互換性について心配する必要はありません。OS 3.0 API に移行し、アプリで他の優れた機能を実行することに集中してください。
人々があなたのアプリを欲しがっていて、彼らが 2.2.1 を持っているなら - 彼らがしなければならないことはアップグレードするだけです - iPhone OS はアップグレードするのが最も簡単な OS でもあります。