iOS中,在类的源文件(.m)中,@interface部分的作用
2015-12-12 13:41
267 查看
.h里面的
而.m里面的
其被设计出来就是为了解决两个问题的,其一,定义类私有方法的地方。其二,实现public readonly,private readwrite的property(意思是在h头文件中定义一个属性对外是readonly的,但在类的的,但在类的
此外,也可在此部分申明变量和属性,但申明的变量,属性和方法均为私有的,只能够被当前类访问,相当于private。
因为 .h 文件可以被其他.m 文件 #import。 自然就可以被其他.m文件访问; 而在.m 文件中所声明的,其实就是一个 static的 变量或方法,自然不能被其他文件访问。
有的同学看到Class Extension,可能会想到OC里的
Class Extension只能用在能得到源代码的情况下,而
因此
@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等。
相关文章推荐
- iOS获取经纬度 地理位置编码反编码
- iOS判断手机中是否 有 SIM卡---备用
- iOS Navigation总结
- iOS多线程GCD
- 自学 iOS 开发的一些经验(一些很好的链接)
- 一行代码实现IOS 3DES加密解密
- IOS获取当前位置坐标不执行代理方法
- 绘图 - 7
- iOS开发——使用MBProgressHUD来增加用户体验
- iOS,CocoaPods使用介绍
- iOS开发-苹果自带地图简单使用
- IOS框架和服务
- IOS 自定义字体
- 加入指数(IOS开发)
- iOS 笔记-SRT视频字幕的解析与同步
- iOS获取当前用户的用户路径并写入文件
- iOS 布局利器
- IOS-44-解决用模态方式presentViewController推出页面时导航栏消失问题
- IOS相关资源
- 40个GitHub上最受欢迎的iOS开源项目