所以我的对象有一个保留字no
,所以我必须在谓词中使用%K。当我将 %K 用作唯一条件时,它会起作用,但是当我将它添加到链或条件时,会引发异常。
这会引发异常:
NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:@"first_name CONTAINS[cd] %@ OR last_name CONTAINS[cd] %@ OR nickname CONTAINS[cd] %@ OR group == %i OR %K = %i", searchText, searchText, searchText, value, value, @"no", value];
异常(exception):
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Contact 0x828dbd0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key (null).'
这个有效:
NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:@"%K = %i", @"no", value];
最佳答案
第一个有 6 个格式说明符和 7 个变量。您要么缺少格式说明符,要么有一个额外的变量。您很可能需要删除前两个 value
引用之一。
关于ios - NSPredicate %K with OR 引发 NSUnknownKeyException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18649664/