2014-01-08 89 views
0

我必須從使用NSPredicate (CoreData)的字符串列表中獲取特定的字符串。爲例如: 如果我有從CoreData如何從字符串列表中找到特定的字符串?

  1. 從上面的列表以下數組的Helloworld

  2. helloworld1234

  3. 的HelloWorld 12345

我只需要1和3結果一個。 我曾嘗試以下,但我得到的所有三個作爲結果

NSPredicate *predicate =[NSPredicate predicateWithFormat:@"contactName CONTAINS [c]%@",[arySeperator objectAtIndex:1]]; 
NSArray *filteredArray1 = [arrayContacts filteredArrayUsingPredicate:predicate]; 

在哪裏,我錯了?

回答

0

LIKE 左手錶達式等於右手錶達式:?和*允許作爲通配符,在哪裏?匹配1個字符並*匹配0個或更多字符。

NSString *textSearch = @"Raja"; 
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"firstname LIKE '*%[email protected]*' OR lastname LIKE '*%[email protected]*'", textSearch]; 
1

查找包含給定文本爲「全字」的所有條目,你可以使用 謂詞「匹配」操作,這對正則表達式匹配,而 字邊界模式\b

NSString *searchWord = @"Helloworld"; 
NSString *pattern = [NSString stringWithFormat:@".*\\b%@\\b.*", searchWord]; 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"contactName MATCHES[c] %@", pattern]; 

如果這個謂詞添加到核心數據讀取請求這也應該工作, 而不是過濾管理對象的獲取已經陣列。

0

您可以使用下面的代碼來獲得一個字符串是否是存在於一個NSArray:

NSArray* yourArray = [NSArray arrayWithObjects: @"Str1", @"Str2", @"Str3", nil]; 
if ([yourArray containsObject: yourStringToFind]) { 
    // do found 
} else { 
    // do not found 
} 
相關問題