我可以使用NSPredicateEditor(NSRuleEditor的一个子类)轻松创建NSPredicate。我想知道的是:使用NSPredicateEditor编辑NSPredicate
如何获取现有的NSPredicate(由编辑器创建的)并将其重新加载到编辑器中以便我可以修改它?
编辑:我试过@约翰的建议使用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);
我验证过谓词得到正确归档和取消,但打开保存的谓语后,谓词不会加载到谓词编辑器中。 (是,谓词编辑器被连接为IBOutlet)
您使用自定义模板吗? – 2009-08-12 21:54:30
@John不,我只是从IB库中拖放了一个PredicateEditor。 – 2009-08-12 21:56:13