美文网首页
.h文件和.m文件里@interface分别有什么用

.h文件和.m文件里@interface分别有什么用

作者: yuebiubiu | 来源:发表于2019-07-24 17:06 被阅读0次

.h里面的@interface,不消说,是典型的头文件,它是供其它Class调用的。它的@property和functions,都能够被其它Class“看到”。

而.m里面的@interface,在OC里叫作Class Extension,是.h文件中@interface的补充。但是.m文件里的@interface,对外是不开放的,只在.m文件里可见。

因此,我们将对外开放的方法、变量放到.h文件中,而将不想要对外开放的变量放到.m文件中(.m文件的方法可以不声明,直接用)。

有的同学看到Class Extension,可能会想到OC里的@protocol。是的,它们都是对一个Class的扩展。不过它们的区别也很明显:

Class Extension只能用在能得到源代码的情况下,而@protocol在得不到源码的时候也可以使用。

因此@protocol一般用作对一些系统Class的扩展,常见的比如对NSString、UIView等

相关文章

网友评论

      本文标题:.h文件和.m文件里@interface分别有什么用

      本文链接:https://www.haomeiwen.com/subject/sehfrctx.html