1.对象的分配、初始化和复制
NSObject类中的一些方法(包括来自协议的方法)用于对象的创建、初始化和复制。
A. alloc和allocWithZone方法用于从某内存区域中分配一个对象内存,并使对象指向其运行时的类定义。
B. init方法是对象初始化原型,负责将对象的实例变量设置为一个已知的状态。
C. initalize和load是两个类方法,它们让对象有机会对自身进行初始化。
D. new 是一个将简单的内存分配和初始化结合起来的便利方法。
E. copy 和copyWithZone方法用于复制这些(由NSCopying协议定义的)方法的类的实例。
F. mutableCopy和mutableCopyWithZone方法,希望支持可变对象的类则需要实现该方法(由NSMutableCopying协议定义)。
2.对象的保持和清理
A. retain 方法增加对象的保持数。
B. release方法减少对象的保持数。
C. autorelease方法减少对象的保持数,但是已推迟的方式。
D. retainCount方法返回当前对象的保持数。
E. dealloc 方法由需要释放对象的实例变量以及释放动态分配的内存的类实现。
3.对象的内省和比较
A. superclass 和class 方法分别以Class对象的形式返回接受者的父类和类。
B. isKindOfClass方法判断当前实例是否属于该类或父类。
C. isMemberOfClass 方法判断当前实例是否属于该类。
D. conformsToProtocol 方法判断当前实例类或父类是否实现了指定协议
( 如:[dog conformsToProtocol:@protocol(MyProtocol)] dog实例的类是否实现了MyProtocol协议,如果该实例类或其该实例类的父类实现了该协议则返回 true)。
E. class_conformsToProtocol 方法只判断当前类符不符合协议,和其父类无关。
F. isEqual方法首先判断两个对象是否类型一致, 在判断具体内容是否一致
G. isEqualTo方法个直接判断字符串内容,当然你要确保比较的对象保证是字符串。
H. isSubclassOfClass 类方法,判断当前类是否为指定的子类。
(如:[Dog isSubclassOfClass:[NSObjectclass]] Dog类是否属于 NSObject的子类。返回true)。
I. instancesRespondToSelector类方法,判断当前类是否有指定的实例方法。
(如:[Dog instancesRespondToSelector:@selector(setNumber:)] Dog类是否有实例方法 setNumber)。