Objective-C 类别性能

2024-04-12

如果我使用类别将 Objective-C 类的实现分解为多个@implementation块,这会使我的 iOS 应用程序生成的二进制文件更大或根本影响性能吗?

显然,你不能在运行时获取类的类别详细信息? https://stackoverflow.com/a/4916829/242933。那么,假设其他条件都相同,生成的二进制文件是否应该在有或没有类别的情况下都相同?

背景

我有一个自定义子类UIViewController这变得相当复杂。

iOS 开发者库:使用 Objective-C 编程:类别 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html#//apple_ref/doc/uid/TP40011210-CH6-SW2

除了向现有类添加方法之外,您还可以使用类别将复杂类的实现拆分到多个源代码文件中。例如,如果几何计算、颜色和渐变等特别复杂,您可以将自定义用户界面元素的绘图代码放在单独的文件中,以实现其余部分。

关于类别的另一个好处(与#pragma marks,例如)是 Xcode 允许您编码折叠整个@implementation块(但不是两个之间的代码#pragma mark的)。如果您想将类别(可以选择折叠)保留在与主类相同的文件中,这非常有用。


链接器会尽可能合并类和类别。如果您的类及其类别在构建时都链接到同一个可执行文件中,则成本为零。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Objective-C 类别性能 的相关文章