我已经启动了一个新的iOS 5项目,并注意到每个.m文件顶部都有新内容。

#import "HomeViewController.h"

@interface HomeViewController ()

@end

@implementation HomeViewController
@synthesize ...
  • 如果我有单独的.h文件,是否需要额外的@interface ...?
  • 为什么在iOS 5之前的项目中未显示此信息?
  • 我可以使用它代替单独的.h文件吗?
  • 进行此操作的最佳实践是什么?
  • 最佳答案

    那是class extension。您可以使用它来声明您不想出现在.h文件中的声明。

    甚至在以前,许多开发人员都使用了此功能,他们在.m文件中手动添加了扩展名。因此,我想Apple将此模板包含在模板中是因为它被广泛使用并且被认为是一种很好的做法。

    实际上,.h文件仅应用于进行声明,这些声明将在其他文件中使用。您可能需要声明一些仅在.m文件内使用的属性,方法或常量。对于这些声明,最好将它们放在类扩展中。

    因此,回答您的问题:



    不,不是必需的,但这是最佳实践。



    即使这是一种常用的做法,也没有包含在模板中。



    不能。在您必须声明类的“公共(public)”接口(interface)的情况下,类扩展名不会替换.h文件。



    您应该将所有不需要在.m文件外部可见的声明放入类扩展中。

    关于objective-c - .m文件中的空@interface声明用于什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9751057/

    10-12 00:25
    查看更多