I need to use NSPredicate with a round function. e.g. :
Child* child1 = [self myFirstChild];
NSPredicate *predicate = [NSPredicate predicateWithString:@"round(SELF.age) > 12"];
BOOL twelveOrAlmostTwelve = [predicate evaluateWithObject:chil开发者_开发技巧d1];
There is no such function in documentation: http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Predicates/Predicates.pdf
Any ideas? Thanks
You can use your own defined function in extensions class. IE:
[NSPredicate predicateWithFormat:@"FUNCTION('12.12345','round:',3) = 12.123"]
and you need to define this method in your category for ie. NSString:
-(NSNumber*) round:(NSString*) precision;
look at the page: http://funwithobjc.tumblr.com/post/2922267976/using-custom-functions-with-nsexpression
You cannot generate arbitrary predicate functions. In this case, however, the answer is trivial:
NSPredicate *predicate = [NSPredicate predicateWithString:@"SELF.age >= 11.5"];
精彩评论