您的位置:首页 > 移动开发 > IOS开发

iOS中,在类的源文件(.m)中,@interface部分的作用

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

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

其被设计出来就是为了解决两个问题的,其一,定义类私有方法的地方。其二,实现public readonly,private readwrite的property(意思是在h头文件中定义一个属性对外是readonly的,但在类的的,但在类的

此外,也可在此部分申明变量和属性,但申明的变量,属性和方法均为私有的,只能够被当前类访问,相当于private。

因为 .h 文件可以被其他.m 文件 #import。 自然就可以被其他.m文件访问; 而在.m 文件中所声明的,其实就是一个 static的 变量或方法,自然不能被其他文件访问。

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

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

因此
@protocol
一般用作对一些系统Class的扩展,常见的比如对NSString、UIView等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: