MacOS - isKindOfClass 和 isMemberOfClass 的区别
两者都是NSObject用于比较Class的方法
不同点在于:
1、isKindOfClass可用于判断对象是否是某一个类的实例化对象,或者是该派生类的实例化对象
2、isMemberOfClass可用于判断对象是否是当前类的实例化对象
举例:
以下代码会返回 YES。因为 in Foundation, the NSArchiver
class inherits from NSCoder
:
if ( [anArchiver isKindOfClass:[NSCoder class]] )
以下代码会返回 NO。
if ([anArchiver isMemberOfClass:[NSCoder class]])
Tips :NSArray、NSMutableArray属于类簇,使用isKindOfClass不能得到正确的结果
原因:由于类簇的性质,这类对象实际返回的实例有不确定性。