2014-11-03 2 views
8

Я отлаживал следующий код с F6 в Xcode 6, и последовательность исполнения очень интересна.Почему отладчик Xcode прыгает по этому пути с помощью Swift?

Вот код - 7 линий, точка останова устанавливается на линии 1:

let request = AWSDynamoDBPutItemInput() 
    request.tableName = "blah" 

    let card = AWSDynamoDBAttributeValue() 
    card.S = "1234" 
    let email = AWSDynamoDBAttributeValue() 
    email.S = "notset" 

    request.item = ["card_number" : card, "email" : email] 

Когда я F6'd через код, он показал следующую последовательность (цифры номера строк):

1,2,4,2,3,4,6,4,5,6,7,6,7 

Почему это? Это что-то с Xcode или языком? Эти классы определены в AWS SDK от Amazon, но не уверены, имеет ли это значение, к ним можно получить доступ через мост с быстрой привязкой к объекту, если бы это было связано с мостом.

Кстати, чистый результат выполнения правильный.

+0

Это в значительной степени нормальный - вы видите похожие с регулярными Objective-C, и я ожидаю, что эффект будет хуже, чем у Swift. –

+0

Это действительно не так уж необычно в любой среде. Особенно с петлями вы увидите прыжок внизу при запуске и/или вверху при завершении. И логика ARC добавляет больше странности. –

+0

@peter вы нашли решение. Я чувствую, что я схожу с ума, пытаясь закодировать, пока мой экран сходит с ума. – boidkan

ответ

1

Наконец-то я получил ответ на мой отчет об ошибке от Apple и звучит так, будто это была ошибка и исправлена ​​в бета-версии XCode. Если вы ищете исправление, воспользуйтесь бета-версии:

Мы полагаем, что эта проблема была рассмотрена в последней версии бета-версии Xcode 6.3, включая SDK IOS 8.3 с Swift 1.2.

Пожалуйста, проверьте этот выпуск. Если у вас все еще есть проблемы, пожалуйста, включите любые соответствующие журналы или информацию, которые могут помочь нам расследовать.

Это предварительная версия полного набора инструментов для разработчиков Xcode для Mac, iPhone, iPad и Apple Watch. Для этой версии требуется OS X Yosemite.

Xcode 6.3 - Создание 6D520o https://developer.apple.com/xcode/downloads/

+0

Спасибо, к сожалению, я не могу использовать XCode 6.3 с моим текущим проектом до его выхода из бета-версии. Однако, я проверю это. – boidkan

+0

проблема все еще существует с oosx yosemite, xcode 6.3 (стабильная) и iOS 8.4. – iAnurag

4

Я думаю, что вы наблюдаете за эффектом оптимизации компилятора. Он перезаписывает ваш код во время компиляции. По этой причине нормально отключать оптимизацию (-Onone) на отладочных сборках, но включить ее (-Ofast или -Os) в выпусках.

0

Вы должны открыть свой проект и нацелен на страницу конфигурации на вкладке Параметры сборки, размещения «Apple LLVM 6.1- генерации кода» тег, изменить уровень оптимизации для debug будет «None [-O0]», очистите свой проект, и все готово!

Смежные вопросы