我有一个非常烦人的错误。可能有一个简单的解决方案,但我无法得到它。
我经常使用NSPredicate
而没有任何问题。现在出现以下错误:由于未捕获的异常终止应用' NSUnknownKeyException
&#39;,原因:&#39; [<TestClass 0x10cf3b80> valueForUndefinedKey:]: this class is not key value coding-compliant for the key testValue.
&#39;
NSString* predicateString = [NSString stringWithFormat:@"name CONTAINS[cd] %@",@"testValue"];
NSPredicate* filterPredicate = [NSPredicate predicateWithFormat:predicateString];
NSArray* filtered = [all filteredArrayUsingPredicate:filterPredicate];
name是我的类的NSString*
属性,所有属性都是包含我的对象的数组。只是一些简单的代码,没有什么额外的。
感谢您的帮助!
答案 0 :(得分:1)
如果你将谓词构造为NSString,它应该是(注意额外的引号):
NSString* predicateString = [NSString stringWithFormat:@"name CONTAINS[cd] '%@'", @"testValue"];
或者,您可以使用以下方式直接构建它:
NSPredicate* filterPredicate = [NSPredicate predicateWithFormat:@"name CONTAINS[cd] %@", @"testValue"];
第二种方法使用%@说明符自动为参数添加引号。