Использование ==
для проверки равенства строк может привести к неожиданному поведению, потому что вы фактически сравниваете указатели (это может быть хорошо, если вы уверены, что имеете дело с одним строковым объектом, на который указывают два указателя). isEqualToString:
вероятно то, что вы хотите вместо этого.
Вы можете использовать «быстрое перечисление», чтобы немного упростить вещи:
bool found = NO;
for (NSDictionary *dict in myArray) {
found = [[dict objectForKey:myKey] isEqualToString:myString];
if (found)
break;
}
Это только «быстрее» в том смысле, что меньше слов писать; Скорость исполнения одинакова.