首页 > 代码库 > iOS中,在类的源文件(.m)中,@interface部分的作用?

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

 

此@interface部分为类扩展(extension)。

其被设计出来就是为了解决两个问题的

其一,定义类私有方法的地方。

其二,实现public readonly,private readwrite的property(意思是在h头文件中定义一个属性对外是readonly的,但在类的内部希望是可读写的,所以可以在m源文件中的@interface部分重新定义此属性为readwrite,此时此属性对外是只读的,对内是读写的)。

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

 

如有你有public 和 private 的概念, 你可以理解为:  .h 文件声明的@property ,是公共的,是可以被其他的.m 文件访问的; 而 在.m文件中声明的@property,是私有的, 只能在该.m文件中使用。 

 

再进一步想想,也容易理解。 

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