0

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

        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.'

我怎样才能搜索它?

4

1 回答 1

1

您正在设置一个使用 的谓词NSMetadataItemFSNameKey,这与kMDItemFSName. 然后你使用这个谓词来尝试过滤self.notes数组。错误消息告诉您的是(a)该数组至少包含一个名为 的类的实例Note,并且(b)Note该类(不出所料)没有名为 的属性kMDItemFSName。这会导致异常。

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

于 2013-08-27T16:58:28.283 回答