2012-02-02 8 views
1

私はちょうどIOSの弱いリンクを確認したい弱いリンクのIOS

ケース1:まったく新しいフレームワーク。
解決策:以前のバージョンをサポートし、そのコードを優雅に処理する必要がある場合は、フレームワークを弱くリンクします。これは問題ありません。

ケース2:既存のフレームワークとクラスですが、新しいセレクターが追加され、この新しいセレクターが使用されています。
解決策:弱いリンクは不要です。セレクタに応答してコードを処理するだけです。これも問題ありません。

ケース3:既存のフレームワークが新しいクラスが追加され、この新しいクラスを使用しています。
解決策:以前のバージョンをサポートし、そのコードを優雅に処理する必要がある場合は、フレームワークを弱くリンクします。これは正しいです ??

私はケース1と2を試して確認しました。ケース3ではUIStepperクラスを使用しようとしましたが、残念ながら以前の実装では隠されていました:-)ので、確認できませんでした。迅速な答えを達人に質問を残す UIStepper not shown but did not crash in 4.3 simulator

思想:

には、以下のリンクを参照してください。

ケースを確認してください3

-mia

(既存の枠組みの中で、新しいクラス)ケース3、あなたはフレームワークへの弱いリンクする必要はありませんが、あなたが取得する NSClassFromStringを使用する必要がありますについては

答えて

3

Classのインスタンスを作成するための参照(古いバージョンのiOSではnilを返すケースを処理することを忘れないでください)。

+0

下記のリンクを参照してください(http://stackoverflow.com/questions/2618889/universal-iphone-ipad-application-debug-compilation-error-for-iphone-testing/2622027#2622027) "エラーが発生していますiPhone OS 3.2のUIKitフレームワークではUISplitViewControllerが追加されていて、通常のようにアプリケーションをリンクすると、アプリケーションはそれらのシンボルが存在しないと想定しています。なぜそのような説明ですか?私は混乱しています。 – mia

+0

iOS 4.2以降、これを行うには2つの方法があります。どちらの場合でも、シンボルの存在を最初に確認せずにシンボルを使用しようとすると、古いバージョンのiOSでアプリがクラッシュします。 –

+0

@一二三私はそれを理解していますが、上記のケースではUIKit Frameworkへの追加について述べています。あなたの答えによると、NSClassFromStringだけで十分ですが、ここでは弱いリンクが言及されています。その答えは間違っていますか?ここに何かがないのですか?もう少し詳しく教えていただけますか? – mia

関連する問題