У меня есть NSArrayController, связанный со свойством подкласса NSManagedObject. Подкласс автоматически генерируется mogenerator (который создает свойство набора для отношения).
NSArrayController связан с network.posts, где 'posts' - это отношение 1-M. Примечание. Я привязан к 'posts', а не к accessors mutableSet postsSet, сгенерированному mogenerator.
Набор представляет отношения с другим объектом. Контроллер массива имеет набор дескрипторов сортировки, и когда открывается окно, с которым он связан, данные отображаются в правильном порядке сортировки.
Затем я добавляю новый объект, создавая экземпляр объекта, а затем добавляя его в отношение.
NSArrayController правильно наблюдает за этим изменением, и новый объект появляется в ограмм_Объектах , однако после вставки порядок сортировки упорядоченных_Объектов теряется и записи появляются в другом порядке.
Я убедился, что дескриптор сортировки по-прежнему установлен правильно. NSArrayController имеет autoRearrangeContent = YES. Я даже пытался вручную вызвать -rearrangeObjects после вставки, но порядок сортировки остается неправильным.
Если я закрою окно и открою заново, только что созданный экземпляр NSArrayController снова получит данные с правильным порядком сортировки. Пока я не сделаю еще одну вставку.
Мой опыт показывает, что NSArrayController автоматически сохраняет правильный порядок сортировки при добавлении / удалении объектов, но, может быть, это было счастливое совпадение?
Я не могу найти какое-либо описание правильного поведения в документе Apple, поэтому не знаю, чего ожидать, что может пойти не так (если что-нибудь) или - в любом случае - что мне с этим делать .
1) Учитывая, что sortDescriptor должен NSArrayController сохранять упорядоченные объекты, отсортированные после вставки / удаления объектов из базовой коллекции?
2) Если так, что могло бы предотвратить это?
3) И, если нет, как правильно отсортировать объекты?
Буду благодарен за любую помощь. В этой ситуации не просто предоставить полезный исходный код, поскольку в принципе его нет. Но я с удовольствием уточню и отвечу на любые последующие вопросы.