たとえば、バージョン 10.7 の場合は、10.7 以降でのみサポートされる機能を持つ別のアプリケーション ビルドがあり、10.8 の場合は、1.8 でサポートされる機能を持つ別のアプリケーションがあります。後で ??私の次の質問は、Mac App Store アプリケーションが、OS のバージョンに応じてユーザーにそのバージョンを提供するのに十分スマートであるかどうかです (10.7 バージョンのアプリをダウンロードするよりも 10.7 を使用している場合、および 10.8 バージョンのアプリをダウンロードするよりも 10.8 を使用している場合)ユーザーのマシン) ?? 同様のものは iOS でも利用できますか (たとえば、iOS 6 や iOS 5 など)?? そうでない場合、Apple はこれらの機能を iOS および Mac のアプリ ストアに実装する予定はありますか?
1 に答える
0
短い答えはノーです。
あなたは本当にこれを動的に行うつもりです。たとえば、フレームワークを弱くリンクして、特定の objc クラスの存在をテストできます。
gcc -weak_framework AVFoundation source.m
if (NSClassFromString(@"AVCaptureSession")) {
// do stuff with AVFoundation here
}
特定のオブジェクトが使用したいセレクターに応答するかどうかをテストすることもできます。
if ([myObject respondsToSelector:@selector(selectorYouWantToUse:)]) {
[myObject selectorYouWantToUse:@"indeed"];
}
場合によっては、どちらも正しく動作しないことがあります。その場合は、次の場所でファイルを調べることができます。
/System/Library/CoreServices/SystemVersion.plist
これを署名付きの関数でラップすると便利だと思います
bool macOSXVersionIsAtleast(int major, int minor, int bugfix);
(実装は読者に任されています)。
于 2013-08-12T08:40:11.497 に答える