首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用'now‘的NSExpression函数

使用'now‘的NSExpression函数
EN

Stack Overflow用户
提问于 2012-02-03 03:28:07
回答 2查看 743关注 0票数 1

我有一个来自ManagedObjectNSDate数组,我想使用一个表达式创建一个NSFetchRequest,这个表达式在以后只给我NSDate,然后现在。

代码语言:javascript
复制
NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"eventDate"];
NSExpression *futureDateExpression = [NSExpression expressionForFunction:@"> now" arguments:[NSArray arrayWithObject:keyPathExpression]];

我正在尝试弄清楚如何编写这个函数。我尝试过其他变体,如SELF > now%@ > nowSELF > now()

所有这些都给了我SIGABRT

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-03 05:20:22

1)您将需要NSPredicate

2)我不确定所有的后端都支持now()

3)但是您可以现在求值并将其替换为参数:

代码语言:javascript
复制
NSPredicate *p = [NSPredicate predicateWithFormat:@"eventDate > %@", [NSDate date]];
[fetchRequest setPredicate:p];
票数 2
EN

Stack Overflow用户

发布于 2012-02-03 03:56:46

因为您有一个比较,所以您没有NSExpression,而是NSPredicate

代码语言:javascript
复制
NSPredicate *p = [NSPredicate predicateWithFormat:@"eventDate > now()"];
[fetchRequest setPredicate:p];

事实证明,如果您在SQLite支持的CoreData存储上使用这个谓词,就不能使用now()。相反,您可以执行以下操作(以suggested by @Krizz身份):

代码语言:javascript
复制
NSPredicate *p = [NSPredicate predicateWithFormat:@"eventDate > %@", [NSDate date]];
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9118651

复制
相关文章

相似问题

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