0

たとえば、バージョン 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 のアプリ ストアに実装する予定はありますか?

4

1 に答える 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 に答える