Цикл, который работает при отладке, но не при выпуске

#while-loop #crash #release #swift4.2 #xcode10.1

#цикл while #сбой #выпуск #swift4.2 #xcode10.1

Вопрос:

Я обновил свой xcode 9.4 до 10.1 и swift 3.3 до 4.2. У меня в приложении есть следующий код, который повторяет цикл while и ожидает, пока флаг (isReceivedAdTagResponse) не станет истинным.

while self.isReceivedAdTagResponse == false
{
continue
}

Этот код отлично работает в режиме отладки, но вылетает в режиме выпуска. Странно, что тот же код работает и в режиме выпуска, если я просто добавлю инструкцию print.

while self.isReceivedAdTagResponse == false
{
print("hi")
continue
}

Где-то я нашел решение для изменения параметра сборки «Уровень оптимизации» на None [-O0], и это работает. ……….»………..»

Я хочу выпустить приложение в магазин. Произойдет ли сбой моего приложения, если я сохраню режим запуска в качестве режима отладки и заархивирую сборку релиза?

Или мне нужно изменить параметр сборки «Уровень оптимизации» на None [-O0] перед его выпуском. Хорошая ли это практика?

Я немного сбит с толку. Пожалуйста, укажите.

Комментарии:

1. Это не имеет ничего общего с debug или release build. «Ждать» в цикле — очень плохая идея, даже несмотря на то, что .isReceived иtagresponse потокобезопасны. НЕ ИСПОЛЬЗУЙТЕ ЭТО!!! НИКОГДА!!!

2. Я действительно понимаю, но я готов изменить это в следующем выпуске, пожалуйста. Потому что код уже написан, и я должен срочно выполнить сборку релиза. пожалуйста, помогите с решением.