2011-06-20 54 views
0

我正在嘗試使用NSPredicate從coredata中獲取實體。我正在嘗試「按照您輸入的方式進行搜索」。它適用於簡單的產品名稱,如「椅子」或「桌子」。NSPredicate predicateWithFormat「OR」出現問題

但是,當我嘗試像「輪椅 - 電 - 電」這樣更復雜的東西時,當我輸入「輪椅電動」時,結果沒有顯示。我認爲這與我的NSPredicate predicateWithFormat有關,但我現在已經有一段時間了。所以我需要一些幫助。

這裏是我的代碼(這是我最好的猜測)

request.predicate = [NSPredicate predicateWithFormat:@" Name BEGINSWITH [c] %@ ",searchText]; 
    request.predicate = [NSPredicate predicateWithFormat:@" Name BEGINSWITH [c] %@ OR Name like[cd] %@ ",searchText,searchText]; 

感謝提前:) Pondd

回答

1

爲了有一個或搜索你將不得不由空格首先拆分搜索項數組。然後,您需要爲每個單獨的組件創建一個LIKE謂詞。最後,你必須將單個謂詞與幾個OR複合謂詞結合起來。