NSPredicate中的自有函数(NSString的循环)

时间:2011-09-26 14:44:09

标签: iphone cocoa nspredicate

我遇到了NSPredicate的问题。

我得到了谓词:

NSPredicate* pr = [NSPredicate predicateWithFormat:@"FUNCTION('12.12345','round',3) = 12.123"];

并定义了NSString的扩展名:

-(double) round:(NSNumber*) precision;

当我手动打电话时:

NSLog(@"%f",[s round:3])

其中s是NSString,它完美地工作,但在NSPredicate中使用: NSInvalidArgumentException:rease - [NSCFString round]:发送到实例的无法识别的选择器。

我使用页面上使用的解决方案:http://funwithobjc.tumblr.com/post/2922267976/using-custom-functions-with-nsexpression

主要问题是在NSPredicate中实现循环功能,欢迎任何其他解决方案

1 个答案:

答案 0 :(得分:1)

冒号(:)必须是FUNCTION中选择器的一部分,因此它应该是FUNCTION('12.12345', 'round:', 3)

另外,我认为round:方法应该返回NSNumber *,而不是原始类型。