黑马程序员技术交流社区

标题: category,类方法,load,initialize [打印本页]

作者: alen2015    时间: 2015-12-12 00:39
标题: category,类方法,load,initialize
今天学习了category分类的用法:总结://Category的用法
作用:不改变原有的类,去给原有的类添加功能(方法)
写法:
命名:原有的类名+分类名
好处:
可以把一个类分模块,便于协同开发,并优化类的结构
不改变类名,给类添加功能
注意的问题:
分类不能写属性,只能写方法
分类中可以直接用主类的属性,但属性的权限要>=@protected
分类肿的方法不能和主类或其他分类重复,即不能重写,如果重写了,那么会覆盖原来的方法
不同分类中重写了同意方法,那么那个分类最后编译,则哪个类的方法执行
主类永远在分类之前编译
编译顺序
父类->主类->分类
分类的另一个用法:
去给OC提供的类进行分类,添加额外的功能


//类方法:
类对象存放在代码区,程序启动时就会调用load类方法,与实例对象创建无关,方法只执行一次.
initialize类方法是在对象创建时调用的方法,无论类创建多少的对象,此方法在执行时只调用一次
init在对象创建时都回去调用此方法,且在子类创建时,同时会调用父类的init方法

分类的方法重写后会覆盖主类的函数;
load方法在分类创建后不会覆盖主类的load方法,而分类会覆盖主类的其他方法




作者: konglong    时间: 2015-12-12 01:33
不错不错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2