У меня есть классическое приложение CoreData, отображающее его данные в NSTableView с привязкой (все сделано с помощью XCode 4.2).
Работает нормально, пока вчера не решу проверить в Инспекторе атрибутов «Авто перегруппировать содержимое»для ArrayController.Теперь, когда я пытаюсь установить для него предикат фильтра, я получаю:
[<_NSFaultingMutableSet 0x102b65950> addObserver:forKeyPath:options:context:] is not supported. Key path: name
Имейте в виду, что без этой опции он работает отлично: предикат хорош, и контроллер правильно фильтрует управляемый контент,и табличное представление отображает только сущность, которая соответствует предикату.
Конечно, я мог бы просто деактивировать это «автоматическое изменение содержимого», но это полезно для поддержания порядка сортировки в случае измененияюридические лица.Если я отредактирую одну сущность, «дата изменена» изменится, и, поскольку мой порядок сортировки в эту дату, я хочу, чтобы TableView автоматически переупорядочил свою строку.И это происходит с этой опцией, но, увы, с добавленной ошибкой «addObserver не поддерживается».
_NSFaultingMutableSet происходит от отношения ко-многим в соответствующей сущности, отсюда и «Set».Может быть, «Автоматическая перегруппировка контента» не совместима с «setFilterPredicate» с отношением «ко-многим»?
У кого-нибудь возникла подобная проблема?Внутренняя ошибка NSArrayController?
Примечание : предикаты, вызывающие проблему, имеют вид
name CONTAINS[cd] %@ OR ANY aliases.name CONTAINS[cd] %@
или
ANY tags.name CONTAINS[cd] %@ OR ANY tags.aliases.name CONTAINS[cd] %@
это кажетсячто «ЛЮБОЙ» вызывает конфликт ...