Хорошо, у меня есть требование установить точку останова, которая получает "удар", только когда метод вызывается (или не вызывается) конкретным объектом и / или селектором
, самый простой способ, о котором я могу думатьэто происходит, если был какой-то макрос компилятора (например, _cmd), который разматывает стек и возвращает идентификатор и селектор непосредственного вызывающего объекта текущего метода.
, например, предполагая, что мажические макросы были _cmd_caller_id & _cmd_caller_sel) -
if ( (_cmd_caller_id == self) && (_cmd_caller_sel != @selector(some_method:signature:) ) {
NSLog(@"called by %@ - hitting breakpoint",NSStringFromSelector(_cmd_caller_sel));
}
(и вы бы поставили точку останова на строке, содержащей NSLog (...););
, потому что у меня есть метод, который вызывается много раз,мне нужно иметь возможность установить более сложный набор условий, чем я описал выше, чтобы установить ловушку для определения, какой метод вызывает вызывающий метод и когда.