XCode 4.2为什么我在.h和.m文件中都看到@interface?

7

为什么在我创建的UIViewController文件中,我会看到两次@interface(在.h和.m文件内)。.m文件中的那个似乎像是构造函数。这是真的吗?

.h文件

@interface BlackTimer : UIViewController 


@end

.m file

@interface ViewController ()

@end

可能是[在.h和.m文件中@interface定义之间的区别]的重复问题。 - jscs
3个回答

7

.m文件中的@interface被称为类扩展。这里是一个很好的解释它的链接。希望这可以帮助到你。 而这里是苹果关于类扩展的文档。


7
通常在.m文件中,您会将所有私有方法的声明放在一起。
最好使用类似于"private"这样的词语来标识私有方法。
@interface ViewController (private)

-(void)myPrivateMethod;

@end

这里有另一个与您的评论相关的SO问题:http://stackoverflow.com/questions/7452445/how-a-class-extension-works-as-a-means-of-implementing-private-methods。 - pasawaya
更好的做法是根本不给这个类别命名,而是使用类扩展,这样可以更好地与编译器配合。请参考qegals的回答。 - vikingosegundo

-1
在实现文件(.m)中的@interface ViewController ()定义是一个匿名类别。它允许定义实例变量、属性和消息,而不会将它们暴露给导入您公共接口(.h)的其他对象。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接