Вызов методов в ObjC - PullRequest
       14

Вызов методов в ObjC

0 голосов
/ 02 декабря 2009

В моем приложении 8 методов, и каждый из них вызывает один метод - (void) someFunction,

Как узнать изнутри - (void) someFunction, какой из этих 8 методов назвал ее?

Все предложения приветствуются.

Спасибо

Ответы [ 4 ]

3 голосов
/ 03 декабря 2009

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

2 голосов
/ 02 декабря 2009

Одним из способов является добавление параметра int к someFunction, и вызывающий метод может идентифицировать себя с уникальным значением.

Например:

-(void)someFunction:(int)callerId { //switch or if stmt here based on callerId }

Тогда вызов метода A вызовет someFunction с callerId 1, метод B с callerId 2 и т. Д.

1 голос
/ 02 декабря 2009

Это кажется простым - передать аргумент функции, которая определяет, каким методом он был.

0 голосов
/ 02 декабря 2009

Я не очень знаком с Objective C, но кажется, что вы хотите трассировку стека. Вы могли бы получить это, создав исключение. (У некоторых языков есть способ получить трассировку стека другими способами, но, как я уже сказал, я недостаточно знаком с Objective C, чтобы знать.) Схожий вопрос по StackOverflow .

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