2015-12-08 227 views
1

我想顯示value1包含value2的所有項目。我嘗試這樣做:字符串中的NSPredicate子字符串

let fetchRequest = NSFetchRequest(entityName: "Product") 
fetchRequest.predicate = NSPredicate(format: "value1 CONTAINS[cd] value2") 

value1value2 - 當前對象的值,它是不變量

但我得到的錯誤:

Unable to parse the format string

爲什麼不允許我這樣做呢?

+0

我強烈地認爲你不能使用「CONTAINS」,而RHS是一個屬性,只有在RHS上有不變的字符串。 –

回答

2

嘗試使用這個謂詞:

let predicate = NSPredicate(format: "value1 CONTAINS[cd] %@", value2) 

與開發人員溝通過程中進行了調查。問題出現在保存到數據庫的數據中。在他的案例中,數據用引號(「」)保存,並且NSPredicate(format: "value1 CONTAINS[cd] %@", value2)正在處理由於該問題導致的錯誤。

+0

這種情況不敏感嗎? – Arti

+0

,我沒有價值2。 value2 - 它是當前對象值 – Arti

+0

@Arti字符串比較默認情況下是區分大小寫和區分符號敏感的。您可以使用方括號內的關鍵字符c和d來修改操作符以分別指定大小寫和變音符不敏感性,例如firstName BEGINSWITH [cd] $ FIRST_NAME。 –