iOS OC 避免在分类中声明属性
2015-07-12 00:00
302 查看
摘要: 避免在分类中声明属性
一 描述
尽管从技术上来说,分类里可以声明属性,但是这种做法还是要尽量避免,原因在于,除了 class-continuation 分类(延展)之外,其他分类都无法向类中新增实例变量,因此,他们无法把实现属性所需的实例变量合成出来。
正确做法是把所有属性都定义在主接口中,这是唯一能够定义实例变量的地方。而属性只是定义实例变量及相关存取方法所用的“语法糖”,所有也应遵循同实例变量一样的规则。
至于分类机制,则应该将其理解为一种手段,目标在于扩展类的功能,而非封装数据
在class-continuation外其他分类中,可以定义存取方法,但尽量不要定义属性
一 描述
尽管从技术上来说,分类里可以声明属性,但是这种做法还是要尽量避免,原因在于,除了 class-continuation 分类(延展)之外,其他分类都无法向类中新增实例变量,因此,他们无法把实现属性所需的实例变量合成出来。正确做法是把所有属性都定义在主接口中,这是唯一能够定义实例变量的地方。而属性只是定义实例变量及相关存取方法所用的“语法糖”,所有也应遵循同实例变量一样的规则。
至于分类机制,则应该将其理解为一种手段,目标在于扩展类的功能,而非封装数据
二 总结
封装数据所用的全部属性都定义在主接口中在class-continuation外其他分类中,可以定义存取方法,但尽量不要定义属性
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- nodejs实现获取某宝商品分类
- php通过分类列表产生分类树数组的方法
- asp飞飞无限级分类v1.0 Asp+sql+存储过程+ajax提供下载
- Oracle表的分类以及相关参数的详解
- js判断客户端是iOS还是Android等移动终端的方法
- IOS开发环境windows化攻略
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- php+mysql实现无限分类实例详解
- IOS 改变键盘颜色代码
- Android和IOS的浏览器中检测是否安装某个客户端的方法
- javascript实现阻止iOS APP中的链接打开Safari浏览器