开发者

NSpredicate with round function

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"];
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜