Xcode 6 Beta / Swift - детская площадка не обновляется

Я играл с функцией Playground в первой бета-версии Xcode 6 - и заметил, что половину времени Playground не обновляет (просто не отображает вычисление результата или сколько итераций цикла происходит), простой код / ​​циклы / функции, которые там. Даже Swift Tour https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/GuidedTour.html

имеет несколько строк кода, которые не отображаются на игровой площадке. Если вы возитесь с кодом, иногда он будет отображаться, перемещая код или размещая его в другом месте. Кто-нибудь еще? Какие-нибудь исправления? Это просто бета проблема?

4 ответа

Решение

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

Чтобы помочь с этим, откройте Ассистент редактора ("Файл"> "Просмотр"> "Ассистент редактора"> "Показать ассистент редактора"), который должен включать в себя поле " Консольный вывод". Если на вашей игровой площадке есть какие-либо ошибки, они появятся там. После исправления ваша игровая площадка должна обновиться.

Тем не менее, это может быть немного медленным в зависимости от сложности вашей игровой площадки и ее размера.

Этот ответ ( необъявленный тип "NSView" в Playground) сделал это для меня (перезапуск XCode, и машина не помогла):

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

Были такие же странные ошибки после обновления до xcode 6 beta 6. Для меня проблема была исправлена ​​с Product -> Clean, И если это не исправляет ошибки, удерживайте нажатой клавишу выбора и снова нажмите на Product в Menubar, то вы увидите в выпадающем меню Clean Build Folder... нажмите на это. Или вы можете скачать приложение Watchdog из магазина приложений. Этот маленький помощник автоматически очищает ваши проекты xcode.

Вы должны быть очень осторожны со Swift. язык очень чувствителен к регистру, поэтому при использовании игровой площадки убедитесь, что все вещи разнесены. Следующий код НЕ выдаст вам синтаксическую ошибку, но остановит обработку остального кода на игровой площадке:

for index in 1...5 {
    if index %2 !=0{
    continue
    }
println(index)
}

Ошибка в приведенном выше коде находится в строке 2. Код должен быть написан

    for index in 1...5 {
       if index % 2 != 0 {
       continue
       }
    println(index)
    }

Надеюсь это ответит на твой вопрос:)

Другие вопросы по тегам