【发布时间】:2010-12-22 10:17:19
【问题描述】:
我的应用程序中有 8 个方法,每个方法都调用一个方法 -(void)someFunction,
如何从 -(void)someFunction 内部知道这 8 个方法中的哪一个调用了它?
感谢所有建议。
谢谢
【问题讨论】:
标签: objective-c function methods
我的应用程序中有 8 个方法,每个方法都调用一个方法 -(void)someFunction,
如何从 -(void)someFunction 内部知道这 8 个方法中的哪一个调用了它?
感谢所有建议。
谢谢
【问题讨论】:
标签: objective-c function methods
重新思考您的设计。你的方法不应该知道也不应该关心调用它们的代码。他们需要知道的任何事情都应该在他们收到的参数中。
【讨论】:
这似乎很容易——将参数传递给确定它是哪种方法的函数。
【讨论】:
我对 Objective C 不是很熟悉,但您似乎想要一个堆栈跟踪。您可以通过抛出异常来获得此信息。 (有些语言可以通过其他方式获取堆栈跟踪,但就像我说的,我对 Objective C 不够熟悉,无法知道。)Related question on StackOverflow。
【讨论】:
一种方法是给 someFunction 添加一个 int 参数,调用方法可以用一个唯一的值来标识自己。
例如:
-(void)someFunction:(int)callerId { //switch or if stmt here based on callerId }
然后调用方法 A 会调用 someFunction,callerId 为 1,方法 B 调用 callerId 2,等等。
【讨论】: