NSPredicate,无法解析格式字符串

时间:2011-07-15 16:25:24

标签: objective-c cocoa-touch cocoa nspredicate

所以我试图通过首先设置谓词然后查询数据来从核心数据中获取自定义对象。我正在做的是:NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(dec LIKE[c] %@", [NSNumber numberWithInteger:[tempItemDec integerValue]]];

所以dec是NSNumber,tempItemDec是NSString所以我必须首先将字符串转换为NSInteger,然后将整数包装到NSNumber以便能够查询,但是它会出错:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "(dec LIKE[c] %@"'

如果我使用他们的名字,我可以从数据库中查询项目,但是我无法理解?

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您尚未关闭括号。此外,您需要为LIKE运算符提供字符串参数,而不是数字。例如,使用[NSString stringWithFormat:@"%i", [tempItemDec integerValue]]