2015-10-13 19 views
1

我有一個雲工具包查詢,它使用下面的NSPredicate來搜索名稱以用戶輸入到UITextField的值開頭的記錄。我想讓搜索大小寫不敏感,所以如果用戶搜索「蘋果」,它會顯示「蘋果」和「蘋果」的結果。 我該怎麼做?我也嘗試將查詢更改爲CONTAINS而不是BEGINSWITH,但該應用程序不返回任何結果,因爲它正在查找數組中的值。是否有可能看到該字符串是否包含文本字段字符串? 感謝CloudKit NSPredicate不區分大小寫

var p = NSPredicate(format: "name BEGINSWITH %@", titleLabel.text!) 
+1

'BEGINSWITH [c]'? 「字符串比較默認情況下是區分大小寫和變音符號敏感的,您可以使用方括號內的關鍵字符c和d來分別指定大小寫和變音符不敏感性,例如firstName BEGINSWITH [cd] $ FIRST_NAME。」從https://developer.apple.com/library/watchos/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html#//apple_ref/doc/uid/TP40001795-SW1(String Comparisons section) – Larme

+0

是'$ FIRST_NAME'我應該在哪裏放置'titleLabel.text!'? –

+0

''name BEGINSWITH [c]%@「'是你應該做的。 – Larme

回答

0

由於每CKQuerydocs

對於包含字符串值的字段,可以搭配使用BEGINSWITH操作字符串的開頭 部分,如圖 清單4.您在不能使用其他字符串比較運算符,如 CONTAINS或ENDSWITH。使用此運算符時,該字段必須包含字符串值 ,並且必須以您指定的字符串開頭。 匹配 區分大小寫。在示例中,謂詞匹配記錄 ,其favoriteColors字段包含紅色,紅色或紅色字符串的綠色膠帶。

+0

BEGINSWITH區分大小寫是正確的。但是,您可以使用 NGRredicate(格式:「self contains%@」,NSString(string:name))對自身使用查詢 然後它是不區分大小寫的。確保在儀表板中標記查詢等。 – bnassler