Я не уверен, что вы ожидали при использовании break
внутри цикла for
, за исключением того, что он должен разорвать цикл (выйти без перехода к следующему элементу). Итак ... первый раз с вашим первым элементом (@ "jpg"), где он что-то делает, затем останавливается.
Кроме того, ваш код вообще не выполняет то, что вы сказали, что он делает. Вы сказали: «У меня есть цикл для проверки, находится ли расширение файла в массиве», но ваш код фактически создает массив расширений файлов и пытается выполнить навигацию для каждого из них.
Если я не пропустил вашу мысль, я не думаю, что вы хотите цикл for. Я думаю, что вы хотите получить ваше расширение, где бы оно вам ни понадобилось (какое-то выбранное имя файла?), А затем просто спросить массив validExtensions, содержит ли он расширение вашего файла:
if ([validExtensions containsObject:someExtension])
{
// navigate to the photo detail / @"PhotoDetailView" view
} else {
// navigate to the detail / @"My Files" view
}
Ключевым отличием является то, что вы теперь спрашиваете массив, содержит ли он объект (расширение), а не зацикливает массив, находит совпадение и пытается разорвать его. Это ошибка вашего дизайна.
Ваша ошибка (что вызывает несколько переходов и связанных с ними записей журнала) заключается в том, что вы нажимаете каждое допустимое расширение, переходя к любому виду подробных фотографий, если оно соответствует вашему расширению файла, или ваше представление «Мои файлы», если нет ... и вы делаете это для каждой записи в допустимом массиве расширений , что приводит к четырем переходам.
Если я не правильно понял, обновите ваш вопрос, чтобы уточнить общую цель.