我可以使用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