2009-12-02 3 views
0

Я имею 8 методов в моем приложении, и каждый из них звонит один метод - (Недействительными) SomeFunction,Вызов методов в ObjC

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

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

Благодаря

ответ

2

Один из способов заключается в добавлении параметра INT в SomeFunction и метод вызова может идентифицировать себя с уникальным значением.

Например:

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

Затем вызывается метод А будет называть SomeFunction с CallerID 1, метод B с CallerID 2 и т.д.

0

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

1

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

3

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

Смежные вопросы