Подтвердить что ты не робот

Po Swift String "неразрешенный идентификатор"

У меня возникли проблемы с отладкой Swift Strings

func stringTest() {

    let test1:String =   "test1";
    let test2:NSString = "test2";

    // <-- Breakpoint here

    println(test1);
    println(test2);
}

Если после этих строк установить точку останова и попробовать и распечатать test1, я получаю следующую ошибку:

po test1
error: <REPL>:1:1: error: use of unresolved identifier 'test1'
test1
^

Но я могу успешно распечатать test2:

po test2
test2
4b9b3361

Ответ 1

Это, скорее всего, ошибка в выводе информации об отладке. Вы можете проверить это, схватив ПК, например, от register read pc, а затем выполните:

(lldb) image lookup -va <PC VALUE>

Это будет печатать кучу вещей, но последними записями будут все переменные, которые в настоящее время видны отладчику, и где они живут (в регистрах или в памяти.) Если вы не видите переменную там, то отладка информация должна была сообщить lldb, что переменная в настоящее время не работает.

Если вы можете воспроизвести это в некотором примере кода, который вы можете сделать доступным, напишите ошибку с сообщением reporter.apple.com.

Ответ 2

Это ошибка Бета. У Xcode6-Beta5 все еще есть эта ошибка. Вы можете получать информацию об отладке только для быстрых переменных, но не можете получить ее для быстрых констант. Временно вы можете изменить let test1 на var test1, и вы получите информацию об отладке. Надеюсь, это будет исправлено в версии выпуска. Удачи в отладке;)

EDIT: К сожалению, эта же проблема все еще происходит в первом выпуске Xcode Version 6.0.1 (6A317)

let test1:String  -> debug info is unavailable
var test1:String  -> debug info is available

EDIT2: Да, подтвердил. Он также исправлен для приложений iOS в последнем Xcode 6.1 под OS X Yosemite.