web-dev-qa-db-ja.com

元のiOSアプリとアプリ拡張機能の間でコードを共有する

IOSアプリと拡張アプリの間でクラスを共有する

アプリと拡張アプリの両方でカスタムクラスを使用したいのですが。メインアプリフォルダーにクラスがあるだけの場合、拡張機能はそれを取得しません。私はそれをコピーして拡張フォルダに入れてみましたが、もちろんinvalid redeclaration of [my class]エラー。これに最適なソリューションは何ですか?これは1つのクラスであり、複数のリソースではありません。

29

何もコピーしてはいけません。拡張機能のソースをコンパイルするために必要なファイルを追加するだけです。

enter image description here

41
Avt

共有したいファイルがセクションTarget Membershipでチェックされていることを確認してください。

ファイルを選択し、右側のユーティリティパネルを開いて、Target Membershipで適切なターゲットにチェックマークを付けます。

enter image description here

20
Duc

組み込みフレームワークは、アプリケーションと拡張機能の間でコードを再利用する優れた方法です。一部のコードを組み込みフレームワークに移動したことで、その周りにいくつかの単体テストを作成する絶好の機会が得られます。

セクションを参照して、埋め込みフレームワークを使用してコードを共有しますhttps://developer.Apple.com/library/ios/documentation/General/Conceptual /ExtensibilityPG/ExtensionScenarios.html#//Apple_ref/doc/uid/TP40014214-CH21-SW1

3
Praveen Matanam