NSFetchRequest不使用谓词

时间:2012-08-30 14:46:28

标签: iphone objective-c ios nspredicate nsfetchrequest

我有这段代码:

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Entry"];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"version == %@", @"1.0"];

[request setPredicate:predicate];

NSArray *results = [managedObjectContext executeFetchRequest:request error:nil];

实体“Entry”有一个名为“version”的属性,它是一个字符串。上面的谓词似乎并不只是返回字符串为“1.0”的条目,但返回一些设置为“1.1”的条目。

我这样做错了吗?

2 个答案:

答案 0 :(得分:1)

尝试在谓词表达式周围放置圆括号()

即。

"(version == %@)"

答案 1 :(得分:1)

查看apple doc

并在like或:

的情况下使用==进行尝试
NSPredicate *predicate = [NSPredicate predicateWithFormat:  
                                       @"(version == %@)", @"1.0"];