3

根据开发者文档,类扩展是通过@interface在实现文件中声明an来实现的,也可以用来将实例变量重新声明为私有。但是,我经常看到下面的代码没有声明新方法或实例变量。它的目的是什么?

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController 
...  
4

1 回答 1

4

这样的代码背后没有任何目的。它存在的唯一原因是它是在 Xcode 中创建 .m 文件的标准模板的一部分。

话虽如此,这样的类扩展是完全无害的,因此在需要添加私有方法或变量时保留它们不会损害应用程序的性能。最后,这是个人喜好问题:例如,我从我的代码中删除了这些未使用的模板生成的工件,但我可以接受一个支持保留它们的论点。

如果您不希望默认生成这些类扩展,请为新的 Objective-C 类克隆和修改 Xcode 模板(这里是一个解释如何做的问答)。

于 2015-01-18T19:31:32.370 回答