【发布时间】:2013-11-13 03:56:48
【问题描述】:
我试图在我的 NSPredicate 中满足 2 个条件,但我收到以下错误。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "(whosEval == %@) AND ([age integerValue] >= 9 && [age integerValue] <= 11)"'
我知道问题出在格式上,但我找不到任何对我有帮助的问题。我做错了什么?这是我正在使用的代码。注意:年龄是核心数据实体的字符串属性。
NSPredicate *evalPredicate =
[NSPredicate predicateWithFormat:@"(whosEval == %@) AND
([age integerValue] >= 9 && [age integerValue] <= 11)", currentAthlete];
【问题讨论】:
-
您不能将 integerValue 之类的东西放入谓词中,这将不起作用并导致您看到的错误
-
@darren102:你建议我如何检查年龄,因为它是一个 NSString?
-
会建议使用 NSNumber 作为 Core Data 中的年龄属性,否则您需要使用第一个谓词获取 NSArray,然后在目标 c 中使用 block 进行谓词以使用 integerValue 方法
标签: ios objective-c cocoa-touch core-data nspredicate