Нахождение значения переменной при использовании точки останова Swift - PullRequest
2 голосов
/ 28 апреля 2019

У меня есть простой тест:

func testAdd(){
        let result = calc.evaluate(op: "+", arg1: 2.0, arg2: 9.0)
        print("result - \(result)")
        XCTAssert(result == 11.0, "Calculator operation failed")
    }

Он проходит, но я пытаюсь установить точку останова и проверить значение в консоли, а значения нет, почему?Пожалуйста, посмотрите на скриншот ниже:

enter image description here

Когда я щелкаю правой кнопкой мыши по «результату» (на левой панели) и выбираю «Распечатать описание результата»,- (Double) result = <variable not available>

Но даже функция печати печатала это значение.Почему?

1 Ответ

0 голосов
/ 28 апреля 2019

Ваша переменная "result" является временной локальной промежуточной переменной.

Если код был скомпилирован в сборке Release (в отличие от сборки Debug), то компилятор мог оптимизировать большинство промежуточных переменных,и сделал идентичные вычисления в совершенно другом порядке, чтобы получить тот же результат.Поэтому в результирующем рабочем коде нет переменной с этим значением для печати. ​​

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...