在我的自定义滚动视图中,我添加了谓词对象。它在调试堆栈中的predicateWithSubpredicates方法中给出了错误。这是我的示例代码,如果出现任何错误,请告诉我。
-(void) awakeFromNib
{
NSPredicateEditor *predicateeditor = [[NSPredicateEditor alloc] initWithFrame:NSMakeRect(0, 0, 200, 150)];
NSArray *leftExpressions = [NSArray arrayWithObjects:[NSExpression expressionForKeyPath:@"date"], nil];
NSAttributeType rightType = NSDateAttributeType;
NSComparisonPredicateModifier modifier = NSAllPredicateModifier; //don't need "ANY" or "ALL"
NSArray *operators = [NSArray arrayWithObjects:[NSString stringWithString:@"Today"],[NSString stringWithString:@"Tomorrow"],[NSString stringWithString:@"Next week"], nil];
NSUInteger options = 0;
NSPredicateEditorRowTemplate *rowTemplate = [[NSPredicateEditorRowTemplate alloc] initWithLeftExpressions:leftExpressions rightExpressionAttributeType:rightType modifier:modifier operators:operators options:options];
[predicateeditor setRowTemplates:[NSArray arrayWithObject:rowTemplate]];
[rowTemplate release];
[self addSubview:predicateeditor];
[predicateeditor addRow:nil];
[predicateeditor displayValuesForRow:1];
[predicateeditor release];
}
答案 0 :(得分:0)
正如你所写的那样,这将定义一个这样的谓词:
ALL date {"Today", "Tomorrow", "Next Week"} {a user-entered date}
我希望你能看出这是非感性的。
首先,如果你的意思是//don't need "ANY" or "ALL"
,那么你就不应该使用NSAllPredicateModifier
。您应该使用NSDirectPredicateModifier
。
此外,允许进入operators
数组的内容是NSNumber
个对象,其中包含一个内置predicate operator values。
那么:你想要完成什么?