我需要使用带有圆函数的NSPredicate。 例如:
Child* child1 = [self myFirstChild];
NSPredicate *predicate = [NSPredicate predicateWithString:@"round(SELF.age) > 12"];
BOOL twelveOrAlmostTwelve = [predicate evaluateWithObject:child1];
文档中没有这样的功能: http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Predicates/Predicates.pdf
有什么想法吗? 感谢
答案 0 :(得分:2)
您可以在扩展类中使用自己定义的函数。 IE:
[NSPredicate predicateWithFormat:@"FUNCTION('12.12345','round:',3) = 12.123"]
您需要在类别中定义此方法,即ie。的NSString:
-(NSNumber*) round:(NSString*) precision;
看一下页面: http://funwithobjc.tumblr.com/post/2922267976/using-custom-functions-with-nsexpression
答案 1 :(得分:1)
您无法生成任意谓词函数。然而,在这种情况下,答案是微不足道的:
NSPredicate *predicate = [NSPredicate predicateWithString:@"SELF.age >= 11.5"];