【问题标题】:How to call a method of one obj c class into another obj c class如何将一个obj c类的方法调用到另一个obj c类中
【发布时间】:2011-03-22 19:13:39
【问题描述】:

我有一个类,其中包含我想在另一个类中使用的方法,并且不想再次创建这些方法。 我知道这是个愚蠢的问题,但我从来没有这样做过。

谢谢,

【问题讨论】:

    标签: iphone objective-c oop inheritance


    【解决方案1】:

    您可以使用继承来解决这个问题。在 AnotherClass 的声明中(在 .h 文件中),您可以声明它扩展了 ParentClass:

    @interface AnotherClass : ParentClass {
        // ...
    }
    
    // method declarations for methods that are new in AnotherClass
    // methods from ParentClass would be inherited by AnotherClass
    
    @end
    

    【讨论】:

      【解决方案2】:

      听起来你应该让第二个类成为第一个类的子类,或者为你的两个类创建一个公共超类

      【讨论】:

        【解决方案3】:

        你能解释一下这两个类之间的关系吗?新的可以是现有类的子类吗?两个独立的类确实不能共享实现——一个类不能借用另一个类的实例方法,除非它们之间存在继承关系。

        【讨论】:

          【解决方案4】:

          这里没有一个正确的答案。很大程度上取决于您的具体情况和对象模型。您可以采取几种不同的方法:

          1) 创建一个超类来实现您想要重用的方法。您当前需要此功能的每个类都可以扩展这个新的超类。

          2) 如果功能不是类的组成部分,您可能需要创建一个“实用程序”类,每个需要它的类都可以调用它。

          3) 在某些情况下,可能适合创建一个“类别”来扩展您要子类化的类的功能。

          一般来说,请考虑您的对象模型并决定该功能属于何处。如果您发现自己经常复制粘贴,这是一个警告信号,表明您的模型可能有点偏离。祝你好运!

          【讨论】:

            【解决方案5】:

            正如其他人所说,您有很多选择,但在您更详细地描述您的对象及其结构之前,我们无法确定最佳选择。

            【讨论】:

              【解决方案6】:

              您应该可以使用 ObjC Runtime 来执行此操作,但我认为子类化是更好的选择。

              【讨论】:

              • 我可能会避免使用 ObjC 运行时,因为这可以通过更简单的实现来实现。
              猜你喜欢
              • 2015-04-12
              • 2020-07-09
              • 1970-01-01
              • 2011-08-18
              • 1970-01-01
              • 2018-02-11
              • 1970-01-01
              • 2011-02-08
              • 2011-09-09
              相关资源
              最近更新 更多