タイトルはこの質問から借用しましたが、これは重複していません。その質問者にとって何が悪かったのかについては、私の回答を参照してください。私はその答えの作者であり、私の問題はそれではありません。
3 つの列を持つテーブル ビューがあり、その値バインディングはarrangedObjects
配列コントローラーの 3 つのプロパティにバインドされています。配列コントローラーは、ドキュメント オブジェクトの にcontentArray
バインドされています。visitationResults
その配列内の項目は、モデル クラス (VisitationResult) のインスタンスです。selectionIndexes
また、配列コントローラとsortDescriptors
ドキュメントのプロパティをバインドしました。
私はいくつかのアクセサーを介して自分のプロパティを変更しています:
- (void) addVisitationResult:(VisitationResult *)newVisitationResult {
[self insertObject:newVisitationResult inVisitationResultsAtIndex:[self countOfVisitationResults]];
NSLog(@"arrayController arrangedObjects: %@", [arrayController arrangedObjects]);
}
このNSLog
ステートメントが実行され、配列コントローラーがモデル オブジェクトを収集して配置していることを確認します。これは、私が自分のプロパティを調べて、ドキュメントの KVO 通知を取得していることを意味します (これは、以前の質問者の問題である、プロパティをバイパスするという問題が、私が抱えている問題ではないことを証明しています)。
NSLog
モデル オブジェクト クラスのアクセサ メソッドにステートメントを追加しました。それらの 1 つは、オブジェクトを並べ替えるために、配列コントローラーによって呼び出されています (そのプロパティが並べ替えキーです)。配列コントローラーが知らない他の 2 つは呼び出されません。
したがって、テーブル ビューは空白のままです。