首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSPredicate解析

NSPredicate解析
EN

Stack Overflow用户
提问于 2012-10-18 10:32:55
回答 1查看 251关注 0票数 0

我有一个简单的谓词快把我逼疯了。

代码语言:javascript
复制
NSString *name;
NSDate *myDate;

-(void)fetch:(NSString *)name Date:(NSDate *)myDate
{
  ...
  //predicate
  NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@ AND myDate = %@",name,myDate];
  [req setPredicate:predicate];
}

-(void)fetch2:(NSString *)predicateStr
{
   ...
  //predicate
  NSPredicate *predicate = [NSPredicate predicateWithFormat:predicateStr];
  [req setPredicate:predicate];
}

////// call #1/////
[self fetch:name Date:myDate]; //WORKS

////// call #2/////
NSString *predicateStr = [NSString stringWithFormat:@"name = %@ AND myDate = %@",name,myDate];
[self fetch2:predicateStr]; 

//调用#2无法工作-无法解析日期??它们不是一模一样的吗?参数是相同的,值没有变化。注意,Date参数才是问题所在,NSString参数在没有Date的情况下可以正常工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-18 11:06:31

不,它们是不一样的。

对于调用#1,下面是您传递给+predicateWithFormat:的内容

代码语言:javascript
复制
@"name = %@ AND myDate = %@"

对于调用#2,下面是您传递给+predicateWithFormat:的内容

代码语言:javascript
复制
@"name = Some Name AND myDate = 2012-10-17 8:05:42 PM -0800"

第一个是有效的predicate format string,因此它可以工作。第二个不是有效的谓词格式字符串,因此它失败了。

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

https://stackoverflow.com/questions/12946239

复制
相关文章

相似问题

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