2013-08-27 30 views
0

我现在从iCloud中在我的iOS应用程序搜索文档用以下代码的iCloud NSPredicate错误的iOS

 NSPredicate* predicate = [NSPredicate predicateWithFormat:@"%K CONTAINS[c] %@", NSMetadataItemFSNameKey,searchText]; 

     [self.notes filterUsingPredicate:predicate]; 
     [self.tblMainTableView reloadData]; 

当我运行和搜索它,它显示与以下错误消息

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Note 0x1cd4ed10> valueForUndefinedKey:]: this class is not key value coding-compliant for the key kMDItemFSName.' 
错误

我如何搜索它?

回答

1

您正在设置使用NSMetadataItemFSNameKey的谓词,它与kMDItemFSName相同。然后,您使用此谓词尝试过滤self.notes阵列。 (a)该数组至少包含一个名为Note的类的实例,并且(b)Note类(不出意外)没有名为kMDItemFSName的属性。这会导致异常。

如果要过滤self.notes,则需要使用仅使用数组中包含的对象上实际存在的属性的谓词。我不知道这些属性是什么,或者你真的想在这里完成什么,但谓词必须使用它们过滤对象上存在的属性。

+0

对不起,但'NSMetadataQuery'返回包含属性'NSMetadataItemFSNameKey'的NSMetadataItems'。这可能是一些iOS错误。多一个。 – SpaceDog