我在这里尝试了一些线程,但找不到解决我的问题的方法。 我正在尝试编写这样的 NSPredicate:
NSPredicate* predicate = [NSPredicate predicateWithFormat: [NSString stringWithFormat:@"%@ IN %@", column, list]];
其中列变量的值为@"id",列表包含四个数字。 id 列是一个 NSNumber 列。
我收到以下错误,我不知道为什么:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "id IN (
8,
5,
15,
22
)
问题不在于 @"id"命名列(如类型),我尝试更改它但它不起作用。 我应该如何正确使用核心数据的 IN 运算符?
最佳答案
不要混合使用 stringWithFormat
和 predicateWithFormat
。并且(正如上面已经评论的那样),
使用 %K
作为关键路径:
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"%K IN %@", column, list];
关于iOS核心数据IN运算符,无法解析格式字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21535974/