1

わかりました、カメラを利用する iPhone プロジェクトがあります。

このプロジェクトの iPad バージョンで同じコードの 80% を利用しようとしていますが、後者のデバイスのカメラの品質が、最初のデバイスの基準として使用したいくつかのパラメーターをいじっているため、いくつかの値を変更する必要があります。 .

つまり、iPhone プロジェクトを複製し、同じプロジェクト内に合計 2 つのターゲットを作成しました。1 つ目は iPhone (オリジナル) 用で、2 つ目は iPad 用です。

2 番目のターゲットをクリックして、ある .m ファイルにコメントを追加すると、iPhone 版のファイルでも同じ .m ファイルに同じコメントが表示されました。

私はそれを望んでいません - ご覧のとおり、私は別居したいのです。iPhone プロジェクトをベースとして、iPad プロジェクトのコードを変更したいと考えています。しかし、どうすればこれを行うことができますか? コメントが iPhone .m にも表示された場合、明らかにそれは区別がないことを意味し、iPad .m で私が何をしても他の .m が台無しになることを意味します。

4

5 に答える 5

3

2 つのプロジェクトが同じファイルを共有しているようです。それらを別々に保持したい場合は、ソースファイルを複製して、プロジェクトに個別に追加してください。

于 2012-12-29T22:51:06.087 に答える
1

ユニバーサルアプリを作成します。こうすることで、1 つのプロジェクト内の 2 つのデバイス間ですべてのコードを共有できます。次に、各デバイス タイプのロジックを別のファイルに分割するだけです。したがって、たとえば、ViewControllerA両方のデバイスとViewControllerA_iPhoneViewControllerA_iPadそれぞれの個別のデバイス用があります。

于 2012-12-29T22:50:54.993 に答える
1

重複の可能性: ipad と iphone 間の条件付きコンパイル

2 番目の実装ファイルは必要ないと思います。別のデバイス用にコンパイルするか、実行時にどのデバイスを使用しているかを確認し、それに応じて調整するだけで済みます。

于 2012-12-29T22:51:40.660 に答える
1

プロジェクト全体をコピーする必要はないと思います。必要なファイルだけをコピーするだけで、iPhone と iPad の論理グループを作成できます。iPad の場合はデバイス タイプを appdelegate クラスにチェックインし、それ以外の場合は iPad 関連のクラスを呼び出します。それがあなたを助けることを願っています。

于 2012-12-29T23:35:04.950 に答える
0

新しい機能を組み込むには、元の機能を「拡張」する必要があるように思えます。

「インターフェイス」を作成してから、すべてのメソッドを実装するクラスの基本形式 (おそらく抽象化) を作成するのが最も簡単ではないでしょうか。機能)

次に、2 つのプロジェクトに対して、抽象クラスを拡張し、必要な機能を追加するメソッドをオーバーライドできます。

美しさは、オーバーライドされたメソッドにエラー状態がある場合、「スーパークラス」抽象メソッドを呼び出してエラーメッセージをスローするだけで、スーパークラスメソッドが文字列入力変数を使用できるようにする必要があると判断できることです。抽象クラスのメッセージの末尾にタグ付けされたカスタマイズされたメッセージ。

デビッド

于 2012-12-29T22:57:12.623 に答える