Как вы смотрите или оцениваете выражение в xcode, например окно Visual Studio? - PullRequest
14 голосов
/ 14 апреля 2011

В MS visual studio мы просто щелкаем правой кнопкой мыши и добавляем часы.

Как это сделать в Xcode?

Ответы [ 6 ]

24 голосов
/ 14 июля 2012

Используйте команду po в области отладки.

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

Если окно отладки не отображается в XCode, вы можетепоказать его через верхнее меню:

'View' -> 'Debug Area' -> 'Activate Console' ( XCode v8.x )

Пример

Для вычисления выражения типа var1/var2 гдеvar1 и var2 являются двойными значениями, введите в консоли следующее:

po var1/var2

Консоль вернет что-то вроде:

(double) $2 = 3.085 [no Objective-C description available]

Отображение свойств объекта

Вы также можете вернуть определенное свойство объекта, который в данный момент используется в коде в этой точке останова:

po [bankInfo city]

И он вернет что-то вроде:

(id) $4 = 0x000069e8 Testville

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

po bankInfo.city

Надеюсь, это то, что вы искали.

11 голосов
/ 04 июля 2015

Ответ Гейба почти готов, но отсутствует одна важная деталь: выберите Вывод отладчика .По умолчанию нижняя опция установлена ​​в Target Output, поэтому команда po ничего не показывает.

Вот сэндвич-приложение из учебника, который я отлаживаю:

eval expression screenshot in xcode

Будучи новичком в xcode и родом из MS Visual Studio Background, я хотел именно то, что искал OP.Играя вокруг, читая ответ Гейба, я выбрал Debugger Output и получил то, что хотел.

2 голосов
/ 14 апреля 2011

Моим пожилым людям сказали использовать NSLog (@variable) ..........

1 голос
/ 17 декабря 2016

Если вы хотите знать, когда изменяется переменная, используйте «watch»:

  1. Установите точку останова где-нибудь в рассматриваемом классе;
  2. Запустите приложение в отладчикеи пусть это остановится на вашей точке останова;и
  3. Перейдите в представление «Переменные» в левой части нижней панели «Отладка», щелкните правой кнопкой мыши на соответствующем свойстве и выберите «Смотреть».

Например,здесь я остановился на точке останова в viewDidLoad и добавил «часы» для total:

Watch

(ЭтоБыстро, но то же самое верно и для Objective-C.)

Теперь, если я "продолжу" выполнение (enter image description here), Xcode будет останавливаться при каждом изменении этого свойства, и яможно увидеть, какая строка кода total меняется, трассировка стека, чтобы добраться до этой точки и т. д.

1 голос
/ 14 июля 2012

Как я понимаю, вы хотели бы видеть, когда переменная меняется.Для этого сделайте точку останова, щелкните по ней правой кнопкой мыши и выберите Edit Breakpoint.Появится окно:

enter image description here

Убедитесь, что вы выбрали правильное действие как Debugger Command или Log Message и отметьте галочкой опции Automatically continue after evaluating.Таким образом, вы получаете какое-то действие (например, ведение журнала, звук и т. Д.) И не останавливаетесь на точке останова.

0 голосов
/ 14 апреля 2011

Установите некоторые точки останова в начале цикла и функций. После того, как вы нажмете кнопку точки останова (аналогичную стрелке) в окне редактора, включится «Инструмент сборки и отладки». Затем вы можете перейти к отладчику, щелкнув значок отладчика. В правой части окна отладчика будут видны переменные, выберите self-> затем переменную экземпляра ur, чтобы установить точку наблюдения. Нажмите на нее правой кнопкой мыши и выберите «watch variable». Будет установлена ​​точка триггера, и вы получите уведомление с значение переменной при изменении.

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