我有一个简单的谓词快把我逼疯了。
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的情况下可以正常工作。
发布于 2012-10-18 11:06:31
不,它们是不一样的。
对于调用#1,下面是您传递给+predicateWithFormat:的内容
@"name = %@ AND myDate = %@"对于调用#2,下面是您传递给+predicateWithFormat:的内容
@"name = Some Name AND myDate = 2012-10-17 8:05:42 PM -0800"第一个是有效的predicate format string,因此它可以工作。第二个不是有效的谓词格式字符串,因此它失败了。
https://stackoverflow.com/questions/12946239
复制相似问题