Как установить условную точку останова в XCode на основе объектного свойства строки?

Может ли кто-нибудь объяснить различия между RX и этими другими очередями обмена сообщениями?

Rx - это просто абстракция над событиями (любое событие!). Получение сообщения из распределенной очереди является событием, и часто решениям ZeroMQ / RabbitMQ часто приходится использовать и комбинировать различные события довольно часто, что очень хорошо для Rx.

Очень часто Rx делает написание приложений ZeroMQ / RabbitMQ намного легче , чем было бы в противном случае:)

86
задан Lorenzo B 22 May 2012 в 14:52
поделиться

3 ответа

Вы можете установить условную точку останова в Xcode, установив ее обычным образом, затем щелкните ее, удерживая клавишу Control, и выберите «Изменить точку останова» (выберите «Выполнить» -> «Показать» -> «Точки останова»).

В запись точки останова, есть столбец «Условие».

Теперь есть несколько моментов, которые следует учитывать при выполнении условия. Во-первых, gdb не понимает синтаксис с точкой, поэтому вместо myObj.name вы должны использовать [myObj name] (если имя не является ivar).

Затем, как и в большинстве выражений в gdb, вы должны указать ему тип возвращаем результат, а именно "BOOL". Поэтому установите условие вроде:

(BOOL)[[myObj name] isEqualToString:@"Bar"]

Часто на самом деле проще сделать это в коде, временно добавив код вроде:

if ( [myObj.name isEqualToString:@"Bar"] ) {
    NSLog( @"here" );
}

и затем установив точку останова в NSLog. Тогда ваше условие может быть произвольно сложным, не беспокоясь о том, что gdb может и не может анализировать.

178
ответ дан 24 November 2019 в 07:59
поделиться

Я не уверен, что это сработает, но вы можете попробовать установить точку останова в этой строке кода, открыть консоль отладчика (Cmd + Shift + R) и ввести

condition N (int)[[myObj name] isEqualToString:@"Bar"]

Где N заменяется номером точки останова (целым числом).

7
ответ дан 24 November 2019 в 07:59
поделиться

Если вы измените myObj.name с помощью установщика, вы можете добавить символическую точку останова на - [MyObjClass setName:] либо из консоли отладчика, либо из Run-> Управление точками останова -> меню «Добавить символическую точку останова» в Xcode. Если нет (почему бы и нет? Вам, вероятно, не следует изменять переменную экземпляра напрямую, за исключением назначенного инициализатора или dealloc), вы можете установить точку наблюдения в gdb (используйте консоль отладчика в Xcode после запуска отладчика). На этой странице объясняется, как. Я не верю, что Xcode предоставляет пользовательский интерфейс для установки точек наблюдения без использования консоли отладчика.

2
ответ дан 24 November 2019 в 07:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: