What is the empty @interface declaration in .m files used for?
我开始了一个新的iOS 5项目,在每个.m文件的顶部发现了一些新的东西。
1 2 3 4 5 6 7 8 | #import"HomeViewController.h" @interface HomeViewController () @end @implementation HomeViewController @synthesize ... |
- 这是额外的@接口吗…如果我有单独的.h文件,需要吗?
- 为什么在iOS 5之前的项目中没有出现这种情况?
- 我可以用这个代替单独的.h文件吗?
- 今后的最佳实践是什么?
这是一个类扩展。您可以使用它来声明您不想出现在
甚至在以前,许多开发人员都使用这个方法,他们在
事实上,
所以要回答你的问题:
- Is this extra @interface ... required if I have a separate .h file?
不需要,但这是一种最佳实践。
- Why did this not show up in pre iOS 5 projects?
即使这是一个常用的实践,它也不包括在模板中。
- Can I use this instead of having a separate .h file?
不。类扩展名不会替换
- What is the best practice for this going forward?
您应该将不需要在
实现文件中的接口部分允许您声明私有的变量、属性和方法,这意味着其他类不会看到它们。
不,根本不需要。但是我尽可能多地使用它,并且只公开那些其他类需要看到的东西。