这基本上是一个设计问题。我的应用程序中有一个包含大量代码行的控制器。我想减少行数,为此我使用了一个类别。
喜欢如果我有UIViewController子类,我在该子类上创建了一个类别。现在我想从UIViewController子类调用一个类别方法。
我有问题是否应该调用[self categoryMethod]?
感谢您的回复!
答案 0 :(得分:1)
是的,你可以使用 self 对象作为同一类UIVIewController
的对象来调用类别方法,所以没有任何问题。
以下是我们需要分类的更详细信息:
您可以使用类别来定义现有的其他方法 类 - 甚至一个源代码不可用的类 - 没有 子类。您通常使用类别向方法添加方法 现有的类,例如
Cocoa frameworks
中定义的类。补充说 方法由子类继承,并且无法区分 运行时从类的原始方法。你也可以使用 您自己的班级类别:
通过在接口文件中声明方法,可以向方法添加方法 在类别名称下并在实现文件中定义它们 同名的。类别名称表示方法是 在其他地方声明的类的扩展,而不是新类。
因此,根据此说明,您可以将UIViewController
代码分发为小category
个小片段(文件)并从您的班级调用。
减少单一类代码的另一种方法是将ViewController
分成小部分,例如TableView
,Header View
和Footer View
,Navigation View
,你可以创建所有View的子类,并将相关的代码编写到相应的类中,而主ViewController
类只包含数据传递和一般方法。
使用ContainerView
是最佳做法,可以将您的UI
和代码分成小部分。
希望这能帮助您了解您的需求!
快乐编码。