2017-06-10 26 views
1

新しいドラッグアンドドロップ機能(iOS 11)をそのまま使用できる新しいiOSアプリを開発しています。しかし、古い(iOS 10)デバイスでも実行可能にしたい。私が理解しているように、Deployment TargetをiOS 11に設定すると、古いデバイスにアプリがインストールされなくなります。ただし、iOS 10.3に設定すると、ドラッグ&ドロップがiOS 11.0以降でのみ使用可能であることを示すエラーが表示されます。古いバージョンのiOSをサポートする

私の質問は、旧バージョンのデバイスで2つのバージョン(1つはDnD、1つはレガシーではない)を提供するか、xcodeにDnDの古いバージョンのバージョンを無視するように指示する方法はありますか?それとも単にこれは不可能なのでしょうか?

すべてのご協力ありがとうございます。

答えて

3

デリゲートのすべてのコンフォーマンスをエクステンションに移動し、@available属性をエクステンションに追加します。たとえば:あなたは拡張機能としてこれらの不適合を記述する場合

@available(iOS 11.0, *) 
extension DragBoardViewController : UIDragInteractionDelegate { ... } 

は、Xcodeの9は自動的に修正-その@available属性を追加するために提供します。

これらのデリゲートメソッドは、iOS 10で定義されていることを忘れないでください。彼らは単に呼び出されません。 @availableのポイントは、コードの他の部分が最初に#availableチェックでラップせずにこれを呼び出すのを防ぐことです。

これを調べる良い方法は、Apple's sample codeをダウンロードし、次に展開ターゲットを10.0に設定することです。多くの修正点が表示されます。プロセスを手助けするためのポップアップが表示され、独自のコードで実行する方法が示されます。

+0

あなたは私の日を保存しました、ありがとうございます! – Hans

関連する問題