私のコードでコアデータに裏打ちされた NSArrayController を正しく動作させるのに問題があります。以下は私のコードです:
pageArrayController = [[NSArrayController alloc] initWithContent:nil];
[pageArrayController setManagedObjectContext:[self managedObjectContext]];
[pageArrayController setEntityName:@"Page"];
[pageArrayController setAvoidsEmptySelection:YES];
[pageArrayController setPreservesSelection:YES];
[pageArrayController setSelectsInsertedObjects:YES];
[pageArrayController setClearsFilterPredicateOnInsertion:YES];
[pageArrayController setEditable:YES];
[pageArrayController setAutomaticallyPreparesContent:YES];
[pageArrayController setSortDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"index" ascending:YES]]];
BOOL result = [pageArrayController setSelectionIndex:0];
setSelectionIndex: を呼び出そうとすると、選択が正常に変更されたことを示す YES が返されます。ただし、その後の pageArrayController オブジェクトへの getSelectionIndex 呼び出しでは、NSNotFound が返されます。
私が理解していないのは、NSArrayController を NIB に配置し、NIB ファイルが初期化を実行できるようにすると (Interface Builder ですべて同じ属性を使用して)、NSArrayController が正しく動作することです。
行動に違いがあるのはなぜですか?NIB ファイルは、これらのタイプのオブジェクトを特別な方法で初期化しますか? NSArrayController の初期化は間違っていますか?
どんな助けでも大歓迎です。ありがとう。