如果我使用类别将我的 Objective-C 类的实现分解为多个@implementation
块,这会使我的 iOS 应用程序生成的二进制文件更大或根本影响性能吗?
显然,您无法在运行时获取类的类别详细信息?. 那么,假设所有其他条件相同,生成的二进制文件是否应该与类别相同或没有类别?
背景
我有一个自定义子类,UIViewController
它变得相当复杂。
除了向现有类添加方法外,您还可以使用类别将复杂类的实现拆分到多个源代码文件中。例如,如果几何计算、颜色和渐变等特别复杂,您可以将自定义用户界面元素的绘图代码放在一个单独的文件中,以便实现的其余部分。
关于 category 的另一个好处(例如,与#pragma mark
s 相比)是 Xcode 允许您对整个@implementation
块进行代码折叠(但不是两个#pragma mark
's 之间的代码)。如果您想将类别(可选折叠)保留在与主类相同的文件中,这很有用。