2012-04-21 8 views
0

NSMutableArrayに既に作成されているクラスとは異なる既存のクラスからNSMutableArrayにアクセスしようとしています。私のプログラムはclass2で起動し、次にclass1にセグを行い、1つ以上の行を押してNSMutableArrayを作成し、class2に更新されたNSMutableArrayインスタンスを取得させます。下のコード他の既存のクラスからNSMutableArrayにアクセスする

+0

がある可能性があります。この時点で空の配列を持つFocusTagTableViewControllerを初期化した直後に配列要素を表示しようとしている可能性があります。 – Anila

答えて

2

これは、クラス2では、空の配列を持つクラス1の新しいインスタンスを作成するためです。 クラス2からその配列にアクセスする場合は、そのファーストクラスへの参照を作成する必要があります。または、Key-Value-Observingを使用することもできます。ここで

は、クラス2を作成するときに、そのアレイのオブザーバーとして 自己を追加し、 observeValueForKeyPath実装する最初のクラスではKVO http://developer.apple.com/library/mac/ipad/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html

、程度のドキュメントです:クラスのメソッドを1

+0

私は依然として対人関係の新しいcです。 Key-Value-Observingをこの問題に対してどのように使用しますか? –

+0

上記の文書を読んで、それは本当に簡単です –

+0

私は自分のコードをアップグレードしましたが、エラーメッセージが表示されます。クラス値FocusTagTableViewControllerのインスタンス0x7e7e300は、キー値オブザーバーが登録されている間に割り当てが解除されました。 –

0

この方法を試してください:

1)class1ファイルでclass2.hファイルをインポートします。

2)の代わりに、あなたのClass1のファイルに設定されたオブジェクトをallSelectedFocusを使用するfooにごclass2.hファイル

3)あなたのclass1にファイル

4でクラス2のオブジェクトを作成する)でグローバルにNSMutableArray *fooを作成します。このファイル自体にこのような[class2Object.foo addObject:selectedFocus];

+0

グローバル変数を作成したくないので、悲しいことに、その解決法は機能しません。おかげで:) –

関連する問題