Objective-C (NSObject isKindOfClass、isMemberOfClass 、conformsToProtocol、isSubclassOfClass)

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)。

你可能感兴趣的:(Objective-C (NSObject isKindOfClass、isMemberOfClass 、conformsToProtocol、isSubclassOfClass))