我们应该从自己调用类别方法吗?

时间:2017-02-14 05:05:01

标签: ios objective-c xcode categories objective-c-category

这基本上是一个设计问题。我的应用程序中有一个包含大量代码行的控制器。我想减少行数,为此我使用了一个类别。

喜欢如果我有UIViewController子类,我在该子类上创建了一个类别。现在我想从UIViewController子类调用一个类别方法。

我有问题是否应该调用[self categoryMethod]?

感谢您的回复!

1 个答案:

答案 0 :(得分:1)

是的,你可以使用 self 对象作为同一类UIVIewController的对象来调用类别方法,所以没有任何问题。

以下是我们需要分类的更详细信息:

  

您可以使用类别来定义现有的其他方法   类 - 甚至一个源代码不可用的类 - 没有   子类。您通常使用类别向方法添加方法   现有的类,例如Cocoa frameworks中定义的类。补充说   方法由子类继承,并且无法区分   运行时从类的原始方法。你也可以使用   您自己的班级类别:

  • 将您自己的类的实现分开 源文件 - 例如,您可以对大型方法进行分组 分为几类,并将每个类别分为不同的类别 文件。
  • 声明私有方法。
  

通过在接口文件中声明方法,可以向方法添加方法   在类别名称下并在实现文件中定义它们   同名的。类别名称表示方法是   在其他地方声明的类的扩展,而不是新类。

因此,根据此说明,您可以将UIViewController代码分发为小category个小片段(文件)并从您的班级调用。

减少单一类代码的另一种方法是将ViewController分成小部分,例如TableViewHeader ViewFooter ViewNavigation View,你可以创建所有View的子类,并将相关的代码编写到相应的类中,而主ViewController类只包含数据传递和一般方法。

使用ContainerView是最佳做法,可以将您的UI和代码分成小部分。

希望这能帮助您了解您的需求!

快乐编码。