今天学习了category分类的用法:总结://Category的用法 作用:不改变原有的类,去给原有的类添加功能(方法) 写法: 命名:原有的类名+分类名 好处: 可以把一个类分模块,便于协同开发,并优化类的结构 不改变类名,给类添加功能 注意的问题: 分类不能写属性,只能写方法 分类中可以直接用主类的属性,但属性的权限要>=@protected 分类肿的方法不能和主类或其他分类重复,即不能重写,如果重写了,那么会覆盖原来的方法 不同分类中重写了同意方法,那么那个分类最后编译,则哪个类的方法执行 主类永远在分类之前编译 编译顺序 父类->主类->分类 分类的另一个用法: 去给OC提供的类进行分类,添加额外的功能
//类方法: 类对象存放在代码区,程序启动时就会调用load类方法,与实例对象创建无关,方法只执行一次. initialize类方法是在对象创建时调用的方法,无论类创建多少的对象,此方法在执行时只调用一次 init在对象创建时都回去调用此方法,且在子类创建时,同时会调用父类的init方法
分类的方法重写后会覆盖主类的函数; load方法在分类创建后不会覆盖主类的load方法,而分类会覆盖主类的其他方法
|