Я могу легко создать NSPredicate с помощью NSPredicateEditor (подкласс NSRuleEditor). Я хотел бы знать следующее:Редактирование NSPredicate с использованием NSPredicateEditor
Как я могу взять существующий NSPredicate (один, созданный редактором) и перезагрузить его в редактор, чтобы я мог его изменить?
EDIT: Я попробовал @ предложение Джона об использовании setObjectValue :, но это не совсем сработало. Позвольте мне объяснить мою настройку немного больше:
У меня есть приложение на основе какао, основанное на документах, и в окне документа есть только NSPredicateEditor. В методе dataOfType:error:
, у меня есть:
NSPredicate * pred = [predicateEditor objectValue];
NSData * predicateData = [NSKeyedArchiver archivedDataWithRootObject:pred];
return predicateData;
В методе readFromData:ofType:error:
, у меня есть:
NSPredicate * pred = [NSKeyedUnarchiver unarchiveObjectWithData:data];
[predicateEditor setObjectValue:pred];
return (pred != nil);
Я подтвердил, что предикат становится правильно архивировать и разархивирован, но после открытия сохраненного предиката , предикат не загружается в predicateEditor. (Да, predicateEditor подключен как IBOutlet)
Вы используете пользовательские шаблоны? –
@ John no Я просто потащил и отбросил PredicateEditor из библиотеки IB. –