4

この問題のデバッグを開始する方法がよくわかりません。

NSCollectionViewがあります。NSCollectionViewItemプロトタイプビュー自体にNSCollectionView(およびこの第2レベルのコレクションビューにコンテンツを提供するためのNSArrayController)が含まれています。トップレベルビューがメインペン先にある場合、両方のレベルのコレクションビューが正常に機能します。

ただし、ビューをコピーして貼り付ける(およびすべての適切なバインディングを再接続する)と、ロードする新しいペン先にloadNibNamed:owner:、第2レベルのビュー(最上位のビューではない)が空白で表示されます。

調査の結果、myArrayController.arrangedObjects.@count実際には0であることがわかりました。ただし、コントローラーがバインドされているNSArray(File's Owner's representedObject.quizzes)は、要求される.@countと2を返します。

quizzes私がやったので、確かに2を返す必要があり[testCategoryA setQuizzes:[NSArray arrayWithObjects:testQuizA1,testQuizA2,nil]];ます。ペン先が読み込まれる前と後のクイズの設定をテストしました。どちらの場合も状況は同じです。

したがって、結論として、2つのレベルのアレイコントローラーを備えた2つのレベルのコレクションビューがあります。トップレベルは常に機能します。ただし、トップレベルがメインのnibファイルにない場合は、2番目のレベルが壊れます。そして、2番目のレベルで壊れているのはアレイコントローラーのバインディングであるように私には思えます。

この絡み合ったペン先の混乱の中でデバッグを開始する方法すら知りません。提案?

4

1 に答える 1

1

クイズ配列が KVO 通知を送信していないか、KVO に準拠しない方法で編集しているように聞こえます (つまり、「コントローラーの背後で配列を編集している」)。

さらに、パフォーマンス上の理由から、quizzes 配列のIndexed Accessor Methodsをチェックインすることをお勧めします。

于 2010-02-05T17:54:39.737 に答える