首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CoreData NSPredicate数学故障

CoreData NSPredicate数学故障
EN

Stack Overflow用户
提问于 2012-05-26 02:37:05
回答 1查看 542关注 0票数 1

首先,这是我的第一个问题,所以请注意:)。

你们有没有注意到NSPredicate中的数学函数的奇怪行为?

我的例子是:

1)我有一个带有接口的出发类:

代码语言:javascript
复制
@interface OTDeparture : NSManagedObject
@property (nonatomic, retain) NSNumber * position;
@end

2)我使用谓词创建fetch请求:

代码语言:javascript
复制
NSPredicate *predicate=[NSPredicate predicateWithFormat:@"(position-1)*(position-1) > 0"];

并且结果总是零个宾语(谓词总是NO)。格式"(2-1)*(2-1) > 0“和"(position-1)*position > 0”也做同样的事情。

这些谓词格式按预期工作(按预期返回对象):

代码语言:javascript
复制
"2*(position-1) > 0"
"2*2 > 0"
"position-3 > 0"

是我做错了什么,还是这真的是个bug?我没有使用任何第三方的东西,只是苹果提供的代码。

EN

回答 1

Stack Overflow用户

发布于 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:仅适用于内存中的存储。因此,很可能你最终会通过遍历所有实体来过滤数据,当然,你可以尝试在执行此操作之前至少进行一些过滤。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10759731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档