Interface Builderの配列コントローラ(myArraycontroller)を辞書で構成される配列(fileDictionariesArray)に接続しています。これは正常に動作しますが、私はアクセスし、私はこのような私のarrayControllerにプログラム的にコンテンツを追加するまで、私はコンテンツにnilを取得arraycontroller [myArrayController arrangedObjects]
の内容の上に列挙しようとすると:NSArraycontrollerがコンテンツにアクセスする
[myArrayController addObjects:fileDictionariesArray];
私は私ができることを行っている後すべての内容をループします。問題は、配列(fileDictionariesArray)が2回追加されたことです。 IBバインディングによる1回とaddObjectsによる1回。プログラムでコンテンツを設定するまでは、arrayContollerにアクセスできません。私はarrayControllerの内容を削除することができますし、このように、プログラムで再度設定:arrayController内のアイテムの正しい数を与えます
[myArrayController setContent:nil];
[myArrayController addObjects:fileDictionariesArray];
を、それがこれを行うには正しい方法のように見えるしていません。私は、コンテンツを2回追加せずに、arrayObjects配列を使ってarrayControllerにアクセスする方法を誰にでも教えていただければ幸いです。
ありがとうございました。 Cheers、Trond Kristiansen
あなたがコンテンツに何もないと言ったとき、いつどこでそれを調べますか? –
あなたの前のコメントに何か問題がありましたか?私は[myArrayController addObjects:fileDictionariesArray]を呼び出します。その直後にarrayControllerの要素をループします:for(myArrayのNSDictionary *ファイル){NSLog ...}。配列の数は20でなければなりませんが、代わりに最初の要素がnullを含む21です。私はこれがawakeFromNibで初期化された空のarrayControllerに配列を追加した結果かもしれないと思いますか? –
私は私の答えを削除したので私の前のコメントを見ることができないようです。準備はコンテンツを適用することができません。なぜなら、nibファイルからコントローラをロードする際に新しいインスタンスを作成するため、IBのチェックを外します。 –