iOS SDKがアップグレードされ、新しい技術が登場します。つまり、ブロックは新しい技術です。iOSターゲットバージョンとSDKバージョンについて
「ブロック」ベースの実装もターゲットの低いバージョンや古いiPhone(3Gまたは第一世代)にも配布できるのですか?
これらの問題に対処するにはどうすればよいですか?
iOS SDKがアップグレードされ、新しい技術が登場します。つまり、ブロックは新しい技術です。iOSターゲットバージョンとSDKバージョンについて
「ブロック」ベースの実装もターゲットの低いバージョンや古いiPhone(3Gまたは第一世代)にも配布できるのですか?
これらの問題に対処するにはどうすればよいですか?
この種の問題に対処する通常の方法は、現在のOSバージョンに基づいて実行時に機能を選択的に有効にすることです。しかし、これは管理が非常に複雑になる可能性があります。
:クエリ実行時
Class optionalClass = NSClassFromString(@"NSArtificialIntelligence");
if (optionalClass) {
id optionalObj = [[optionalClass alloc] init];
// ...
}
以下のドキュメントイオンは詳細にプロセスを説明しています。あなたが特異的にブロックに言及
。この機能は、コンパイラーとObjective-Cランタイムのサポートを必要とするため、古いシステムでは使用できません。
iOS4以降のブロックを使用している場合は、libSystem.B.dylibへのリンクを弱くする必要があります。ブロックは最新のiOS SDKでコンパイルできますが、iOS2,3.0と3.1ではブロックランタイムがありません。
(また、あなたがiPhone 2.2以降のためのブロックを使用することができます。plblocksをご覧ください。)あなたの答えのための
感謝。ブロックは単なる一例に過ぎない。開発者は最新の技術を使いたいと思っていますが、アプリは一番低いSDKのために、さらに多くのデバイスにインストールしたいと考えています。はい、これは矛盾しています。もっと深く知るために、このタイプの問題を扱う良い練習はありますか?再度、感謝します – Forrest