У меня проблемы с получением 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, указывая, что выбор был успешно изменен. Однако любые последующие вызовы getSelectionIndex к объекту pageArrayController возвращают NSNotFound.
Чего я не понимаю, так это того, что если я помещаю NSArrayController в NIB и разрешаю файлу NIB выполнять инициализацию (со всеми теми же атрибутами в Interface Builder), NSArrayController работает правильно.
Почему существует разница в поведении? Файл NIB инициализирует эти типы объектов особым образом? Моя инициализация NSArrayController неверна?
Любая помощь приветствуется. Благодаря.