Небольшая проблема с элементами управления редактором предикатов Xcode 4 - я думаю, что все делаю правильно, и это действительно похоже на саму среду IDE остановлен.
У меня возникла эта проблема в приложении, которое я пишу, но чтобы изолировать ее, я сделал следующее:
Создайте новый проект с окном. В редакторе XIB добавьте к нему NSPredicateEditor и добавьте одну строку. Оставьте его как ключевые пути / строки и добавьте два ключевых пути - «заголовок» и «писатель». Сделайте его нечувствительным к регистру и диакритике.
Создайте подкласс NSWindowController и добавьте IBOutlet для редактора предикатов.
В awakeFromNib введите следующий код:
NSPredicate * myPredicate = [NSPredicate predicateWithFormat: @ "(title СОДЕРЖИТ [CD]% @) И (писатель СОДЕРЖИТ [CD]% @) ", @" ", @" "];
[_ predicateEditor setObjectValue: myPredicate];
Это дает в консоли следующее:
2011-04-12 15: 59: 37.709 PredicateTest [38419: 903] Предупреждение - невозможно найти шаблон, соответствующий заголовку предиката CONTAINS [cd] ""
2011-04-12 15: 59: 37.710 PredicateTest [38419: 903] Предупреждение - невозможно найти средство записи предикатов, соответствующих шаблону, СОДЕРЖИТ [cd] ""
Когда я нажимаю кнопку (+) чтобы добавить новую строку, я получаю следующее:
2011-04-12 15: 59: 40.044 PredicateTest [38419: 903] Невозможно создать предикат сравнения с помощью оператора или выражения nil.
Правильно ли я думаю, что я Я здесь ничего плохого не делаю, и это должно сработать? Если я изменю шаблон строки редактора предикатов в сторону от ключевых путей, затем переключу его обратно на ключевые пути и отредактирую список ключевых путей, Xcode вылетает из-за исключения внутренней согласованности, что заставляет меня думать, что, возможно, Xcode 4 не подходит для редактирования предикатов.
У кого-нибудь есть идеи? Я пробовал создать NSPredicateEditor в коде, а не в редакторе XIB, и безрезультатно возился без конца. Функциональность редактирования предикатов - это все, что мешает мне выпустить приложение в магазин, так что это немного раздражает.