Соответствующие строки в Objective C - PullRequest
1 голос
/ 27 сентября 2010

У меня есть цикл for, который перебирает массив и хочет сопоставить текст поля поиска с объектом в массиве.

У меня есть следующий код

for (int i = 0; i < [data2 count]; i++) {
    if ([data2 objectAtIndex:i] == searchField.text) {
        NSLog(@"MATCH");
            break;
    }
}

Я знаюв Java это может быть сделано, например, if(searchField.text.equalsIgnoreCase(the object to match against))

Как это делается в цели C, чтобы соответствовать строке без регистра?

Кроме того, что, если я хотел бы сопоставить часть строкиэто будет сделано в Obj C char с помощью char или есть встроенная функция для сопоставления частей строк?

Спасибо

Ответы [ 3 ]

4 голосов
/ 27 сентября 2010

Предполагая, что ваши строки являются NSStrings, вы можете найти свои ответы в Ссылке на класс NSString

NSString поддерживает caseInsensitiveCompare: и rangeOfString: или rangeOfString: параметры: , если вы хотите поиск без учета регистра.

Код будет выглядеть следующим образом:

if (NSOrderedSame == [searchField.text caseInsensitiveCompare:[data2 objectAtIndex:i]) {
    // Do work here.
}
3 голосов
/ 27 сентября 2010
[[data2 objectAtIndex:i] isEqualToString: searchField.text]
2 голосов
/ 27 сентября 2010

Вы используете isEqual: (для сравнения объектов в целом) или isEqualToString: (для NSStrings, в частности). И вы можете получить подстроки с помощью метода substringWithRange:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...