2013-08-27 49 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