background image
七、+(void)load +(void)initialize 的区别 
(1)  +(void)load:表示程序开始加载到内存时调用  2.自身未定义,不会沿用父类的方
法。3.lei 别中的定义全部执行,先执行类自身的实现,再执行类别(Category)中的实现 
 
(2)  +(void)initialize:便是该类首次使用将被调用  2.自身未定义,hui 沿用父类的方法。
3.类别中的定义,会执行最后一个,并且覆盖类的方法 
http://www.cnblogs.com/ider/archive/2012/09/29/objective_c_load_vs_initialize.html 
 
八、weak 和 strong assign 
strong:强引用,用于 OC 对象,相当于 MRC 中的 reatin,引用计数器加 1 
 
weak:弱引用,用于 OC 对象,相当于 MRC 中的 assign,引用计数器不加 1 
 
assign:用于一般数据类型,和 MRC 中的 assign 一样,引用计数器不加 1 
 
九、category 的使用 
(1)category 的声明: 
@interface Person (WJPerson) 
-(void)goShopping; 
@end 
 
(2)category 的实现: 
@implementation Person (WJPerson) 
-(void)goShopping 
NSLog(@"去购物"); 

@end 
 
(3)category 的使用: 
1)category 可以在不改变原有类的基础上,给类扩充一些方法 
2)可以让庞大的类分模块开发。 
3)一个庞大的类进行多人开发,更利于团队合作。 
 
(4)category 的注意点: 
1)分类不能扩充属性和成员变量,只能给类扩充方法 
2)分类里面的@property 只能生成 setter 和 getter 的声明,并不能生成 setter 和 getter 的实
现 
3)如果分类里面有和类里面相同名字的方法,对象调用的时候回调用分类的方法,不去调
用类里面的方法。如果有多个分类里面同名的方法,则会调用最后一个参与编译分类里面的
方法 
 
 
十、Person  和 WJPerson  的区别