特定のクラスのオブジェクトの同じ参照に2つの異なるXib内でアクセスする方法を知りたいです。
各xib内のクラスのオブジェクト参照を作成することにより、異なるオブジェクトが作成されることを理解しています。AppDelegateを使用している場合でも、さまざまなオブジェクトを作成します。私が達成したいのは、両方のxib内の参照オブジェクトが同じである必要があることです(たとえば、オブジェクトを2つの異なるテーブルビューのデータソースとして使用できるようにするため)。
特定のクラスのオブジェクトの同じ参照に2つの異なるXib内でアクセスする方法を知りたいです。
各xib内のクラスのオブジェクト参照を作成することにより、異なるオブジェクトが作成されることを理解しています。AppDelegateを使用している場合でも、さまざまなオブジェクトを作成します。私が達成したいのは、両方のxib内の参照オブジェクトが同じである必要があることです(たとえば、オブジェクトを2つの異なるテーブルビューのデータソースとして使用できるようにするため)。
オブジェクトを一度だけ作成し、両方のクラスからアクセスできる場所に配置します。たとえば、オブジェクトをアプリケーション デリゲートのプロパティとして作成できます。それから加えて
AppDelegate *app = [[UIApplication sharedApplication] delegate];
クラスに(をインポートした後AppDelegate.h
)、 を使用してオブジェクトにアクセスしますapp.objectName
。
他の答えはうまくいきますが、それは悪い設計です。
に固執する必要がありtell don't ask rule
ます。オブジェクトに使用させたい dataSource を与えます。実際には厄介なグローバルである dataSource を要求しないでください。
もう1つの問題は、ペン先に対するあなたの理解です。これらはオブジェクト グラフを保存します。nib がロードされると、グラフはアーカイブされず、その中の各オブジェクトがインスタンス化されます。グラフに同じオブジェクトが 2 つある場合、1 つのインスタンスへの 2 つの参照ではなく、 2 つのインスタンスになります。複数のビューをドラッグする場合も同じで、複数のインスタンスUIView
(およびサブクラス) が作成されますが、これはまさに期待どおりです。
nib でできる/できないこととコードでしなければならないことの境界と、それらすべてがどのように適合するかを学ぶことは、努力する価値があります。
面白い !
シングルトンアプローチを使用してみてください。このリンクを確認してくださいhttp://www.duckrowing.com/2010/05/21/using-the-singleton-pattern-in-objective-c/
このアプローチを使用すると、次のようなインスタンスを作成できます。アプリケーションのライフサイクル全体で利用可能