Может ли кто-нибудь объяснить различия между RX и этими другими очередями обмена сообщениями?
Rx - это просто абстракция над событиями (любое событие!). Получение сообщения из распределенной очереди является событием, и часто решениям ZeroMQ / RabbitMQ часто приходится использовать и комбинировать различные события довольно часто, что очень хорошо для Rx.
Очень часто Rx делает написание приложений ZeroMQ / RabbitMQ намного легче , чем было бы в противном случае:)
Вы можете установить условную точку останова в Xcode, установив ее обычным образом, затем щелкните ее, удерживая клавишу Control, и выберите «Изменить точку останова» (выберите «Выполнить» -> «Показать» -> «Точки останова»).
В запись точки останова, есть столбец «Условие».
Теперь есть несколько моментов, которые следует учитывать при выполнении условия. Во-первых, gdb не понимает синтаксис с точкой, поэтому вместо myObj.name вы должны использовать [myObj name] (если имя не является ivar).
Затем, как и в большинстве выражений в gdb, вы должны указать ему тип возвращаем результат, а именно "BOOL". Поэтому установите условие вроде:
(BOOL)[[myObj name] isEqualToString:@"Bar"]
Часто на самом деле проще сделать это в коде, временно добавив код вроде:
if ( [myObj.name isEqualToString:@"Bar"] ) {
NSLog( @"here" );
}
и затем установив точку останова в NSLog. Тогда ваше условие может быть произвольно сложным, не беспокоясь о том, что gdb может и не может анализировать.
Я не уверен, что это сработает, но вы можете попробовать установить точку останова в этой строке кода, открыть консоль отладчика (Cmd + Shift + R) и ввести
condition N (int)[[myObj name] isEqualToString:@"Bar"]
Где N заменяется номером точки останова (целым числом).
Если вы измените myObj.name с помощью установщика, вы можете добавить символическую точку останова на - [MyObjClass setName:]
либо из консоли отладчика, либо из Run-> Управление точками останова -> меню «Добавить символическую точку останова» в Xcode. Если нет (почему бы и нет? Вам, вероятно, не следует изменять переменную экземпляра напрямую, за исключением назначенного инициализатора или dealloc), вы можете установить точку наблюдения в gdb (используйте консоль отладчика в Xcode после запуска отладчика). На этой странице объясняется, как. Я не верю, что Xcode предоставляет пользовательский интерфейс для установки точек наблюдения без использования консоли отладчика.