我已经看到Objective-C代码的示例显然使用不同的方法进行相同/类似的检查。我想知道这些有什么区别:
isKindOfClass
isMemberOfClass
isSubclassOfClass
还请注意是否有我在这里没有提到的支票,因为我正在学习,目前对事情的指挥很差。
答案 0 :(得分:4)
这些都是实例方法:
isKindOfClass:
对象是类的实例,还是该类的子类的实例?
isMemberOfClass:
对象是类的实例吗? (不包括子类)。
而最后一个是类方法,(例如[NSString isSubclassOfClass:[NSObject class]]
)。
isSubclassOfClass:
类是否等于另一个类或该类的子类?
答案 1 :(得分:1)
google上有这么多链接,特别是在stackoverflow上被多次询问,请在评论中查看我添加的链接,
iPhone SDK difference between isKindOfClass and isMemberOfClass
尝试阅读他们的文档,这将对您有所帮助。
<强>被修改强>
假设您有一个类名External
,而在External
类内,您有一个名为Internal
的子类。我希望你知道类可以有一个可以访问主类属性的子类。所以通过这种方法你可以问一个Internal
类,你是外类的子类吗?
[Internal isSubclassOfClass:External]
返回值为BOOL
Apple的文档网站上提供了更多阅读