Утверждение «если» - довольно хорошее предположение! - один из основных принципов (если не основной принцип) всех языков программирования ...
Существует 101 способ сделать это, поэтому вы, вероятно, получите кучу ответов.
По сути, вы хотите сделать следующее:
- Создайте NSEnumerator, который позволит вам шагать по массиву
- Перебрать этот перечислитель
- Проверять содержимое массива каждый раз
Обратите внимание, что есть и другие подходы, в том числе использование так называемого "быстрого перечисления", но я оставлю вас читать их самостоятельно.
Хорошо, теперь время для примера кода:
NSEnumerator *enumerator;
enumerator = [myArray objectEnumerator]; // myArray is what we're checking
NSString *stringContents;
while (stringContents = [enumerator nextObject]) { // Cycles through array
if ([stringContents isEqualToString:@"SOMETHING"]) {
// We have a match! Call a method or something...
}
}
Как я уже сказал, есть много других способов сделать это, но, надеюсь, это поможет вам начать!
Редактировать: Если вы хотите просмотреть несколько элементов, например textField1, textField2 и textField3, ваш код может выглядеть следующим образом (|| - это символ для логического «ИЛИ»):
if ([stringContents isEqualToString:textField1.text] ||
[stringContents isEqualToString:textField2.text] ||
[stringContents isEqualToString:textField3.text]) {
Это будет иметь значение true, если какое-либо из трех textFields соответствует содержимому вашего массива. Если вы хотите оценить значение true, если ВСЕ ваши утверждения совпадают, поменяйте местами || для &&.
Edit 2: Если вы хотите сравнить несколько множеств NSArrays, имеет смысл поместить перечисление и сравнение массива в отдельный метод, который принимает массив и строку и, возможно, возвращает BOOL, зависящий от было ли найдено совпадение:
Новый метод:
-(BOOL)checkArray:(NSArray *)myArray forString:(NSString *)myString {
NSEnumerator *enumerator;
enumerator = [myArray objectEnumerator];
NSString *stringContents;
while (stringContents = [enumerator nextObject]) { // Cycles through array
if ([stringContents isEqualToString:myString]) {
return YES;
}
}
return NO;
}
И затем вы можете вызвать это для нескольких массивов:
BOOL result1 = [self checkArray:array1 forString:textField.text];
BOOL result2 = [self checkArray:array2 forString:textField.text];
// Etc...
Надеюсь, что все поможет! ...
Редактировать 3: Если вам нужно заполнить массивы поисковыми терминами, для этого есть удобный способ:
NSArray *myArray = [NSArray arrayWithObjects:@"Item 1",@"Item 2", nil];
Обратите внимание на пару важных вещей: каждому элементу предшествует символ @, если его текст в кавычках, а последним элементом всегда должно быть слово nil . Вы можете положить столько (сколько угодно) предметов, сколько захотите.