首先,这是我的第一个问题,所以请注意:)。
你们有没有注意到NSPredicate中的数学函数的奇怪行为?
我的例子是:
1)我有一个带有接口的出发类:
@interface OTDeparture : NSManagedObject
@property (nonatomic, retain) NSNumber * position;
@end2)我使用谓词创建fetch请求:
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"(position-1)*(position-1) > 0"];并且结果总是零个宾语(谓词总是NO)。格式"(2-1)*(2-1) > 0“和"(position-1)*position > 0”也做同样的事情。
这些谓词格式按预期工作(按预期返回对象):
"2*(position-1) > 0"
"2*2 > 0"
"position-3 > 0"是我做错了什么,还是这真的是个bug?我没有使用任何第三方的东西,只是苹果提供的代码。
发布于 2012-10-31 14:29:56
看起来你是对的,在CoreData中有一些:(我也有同样的问题-- Is there any way to use NSPredicate to filter objects using distance calculation between points in CoreData似乎接收你想要的东西的唯一方法就是使用predicateWithBlock: method,尽管我自己还没有尝试过。请注意,predicateWithBlock:仅适用于内存中的存储。因此,很可能你最终会通过遍历所有实体来过滤数据,当然,你可以尝试在执行此操作之前至少进行一些过滤。
https://stackoverflow.com/questions/10759731
复制相似问题