【问题标题】:Calling methods in ObjC在 ObjC 中调用方法
【发布时间】:2010-12-22 10:17:19
【问题描述】:

我的应用程序中有 8 个方法,每个方法都调用一个方法 -(void)someFunction,

如何从 -(void)someFunction 内部知道这 8 个方法中的哪一个调用了它?

感谢所有建议。

谢谢

【问题讨论】:

    标签: objective-c function methods


    【解决方案1】:

    重新思考您的设计。你的方法不应该知道也不应该关心调用它们的代码。他们需要知道的任何事情都应该在他们收到的参数中。

    【讨论】:

      【解决方案2】:

      这似乎很容易——将参数传递给确定它是哪种方法的函数。

      【讨论】:

        【解决方案3】:

        我对 Objective C 不是很熟悉,但您似乎想要一个堆栈跟踪。您可以通过抛出异常来获得此信息。 (有些语言可以通过其他方式获取堆栈跟踪,但就像我说的,我对 Objective C 不够熟悉,无法知道。)Related question on StackOverflow

        【讨论】:

          【解决方案4】:

          一种方法是给 someFunction 添加一个 int 参数,调用方法可以用一个唯一的值来标识自己。

          例如:

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

          然后调用方法 A 会调用 someFunction,callerId 为 1,方法 B 调用 callerId 2,等等。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-01-17
            • 1970-01-01
            • 2012-07-14
            • 2020-11-10
            • 2015-03-22
            • 2012-04-11
            相关资源
            最近更新 更多