NSPredicate%K与OR提升NSUnknownKeyException

时间:2013-09-06 04:00:33

标签: ios nspredicate

所以我的对象有一个保留字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];

例外:

*** 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];

1 个答案:

答案 0 :(得分:1)

第一个有6个格式说明符和7个变量。您要么缺少格式说明符,要么有额外的变量。您很可能需要删除前两个value引用中的一个。