2014-01-30 37 views
0

嘿所以我使用NSPredicate來過濾數組。目前我使用下面的代碼:iOS - 幫助使用[NSPredicate predicateWithFormat]

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF.name contains[c] %@", searchText]; 

這已經好了工作,因爲它看起來的屬性。名稱和檢查,看它是否包含在SEARCHTEXT。我想知道是否有辦法讓我將它從檢查文件中是否包含在搜索文本中更改爲搜索文本是否以搜索過濾器開頭。 I.E.如果搜索文本是school,並且我輸入sc作爲搜索文本保留的過濾器,但是如果我輸入sco,搜索文本school被過濾掉。是否有某種beginswith,我可以使用,而不是contains[c]。謝謝!

回答

4

是的,沒錯,事實上:

  1. BEGINSWITH 左手錶達始於右手錶達。
  2. CONTAINS 左邊的表達式包含右邊的表達式。
  3. ENDSWITH 左側表達式以右側表達式結束。
  4. LIKE 左手錶達式等於右手錶達式:?和*允許作爲通配符,在哪裏?匹配1個字符,*匹配0個或更多字符。
  5. MATCHES 根據ICU v3,使用正則表達式比較的左手錶達式等於右手錶達式(更多細節請參見ICU用戶指南中的正則表達式)。

Full docs