2014-06-20 106 views
-2

我想創建NSPredicate對象。下面給出了我的代碼。爲什麼我總是得到零?有沒有其他方法可以做到這一點?NSPredicate永遠是零

NSString *[email protected]"Deva"; 
NSString *predicateString=[NSString stringWithFormat:@"name contains[c] '%@'",name]; 
NSPredicate *namepredicate=[NSPredicate predicateWithFormat:predicateString];` 
+0

你將它與它進行比較的價值是什麼?如果「Deva」不在您所匹配的數據中,則它將爲零。 – brandonscript

+1

你爲什麼這樣構建謂詞?如果名字是「O'Shaughnessy」呢? NSPredicate的格式如下:'[NSPredicate predicateWithFormat:@「name contains [c]%@」,name]' –

+0

此外,我只是嘗試'namepredicate!= nil'。你遇到什麼問題? –

回答

0

您必須更改謂詞的格式。 當你使用一個謂詞時,第一個變量(在你的例子'name'中)是你從對象中獲得的屬性。在字符串中,您沒有屬性名稱。 嘗試:

NSString *name = @"Deva"; 
    NSPredicate *namepredicate=[NSPredicate predicateWithFormat:@"(self contains[c] %@)",name]; 
    arr = [arr filteredArrayUsingPredicate:namepredicate];