Возможно, у меня есть основная проблема, понимающая общую предпосылку, но я пытаюсь найти наилучший подход к сделать что-то с массивом элементов и закончить тест раньше, когда будут найдены определенные критерии.Метод для завершения цикла с обработчиком завершения?
Например, у меня есть массив имен;
var names = ["Bob", "Billy", "Sarah", "Brandon", "Brian", "Rick"]
Я хотел бы протестировать каждое имя в массиве и посмотреть, существует ли он в базе данных. Для этого я вызываю другую функцию с обработчиком завершения;
for name in names {
TestName(name) { response in
if response {
// END THE LOOP
} else {
// KEEP GOING
}
}
Я не смог выяснить // END Петля. Для целей этого примера я беспокоюсь только тогда, когда ответ верен в первый раз (если Билли существует в массиве, я больше не заинтересован в тестировании Сары, Брэндона, Брайана или Рика).
Спасибо!
Извините, о моем плохом ответе. Проблема в том, что вы находитесь в блоке, который я не заметил. :) – matt
Кстати, если обработчик завершения TestName асинхронен, у вас есть основная проблема с вашей общей предпосылкой! – matt
FYI, если это предназначено для синхронности, вы не должны использовать закрытие, и если он предназначен для асинхронности, вы не можете рассчитывать на свое поведение, используя цикл for – PeejWeej