isKindOfClass和isMemberOfClass的区别
2016-01-11 00:19
405 查看
isKindOfClass 当子类是该类的派生类或者父类时, 返回值是YES;
isMemberOfClass 只有当子类是该类的类型时,返回YES
UILabel *label = [[UILabelnew]autorelease];
if ([label isKindOfClass:[UILabelclass]]) {
NSLog(@" is KindOfClass? YES!");
}
if ([label isKindOfClass:[NSObjectclass]]) {
NSLog(@" is KindOfClass? YES!");
}
if ([label isMemberOfClass:[UILabel class]]) {
NSLog(@" is MemberOfClass? YES!");
}
if ([label isMemberOfClass:[NSObject class]]) {
NSLog(@" is MemberOfClass? NO!");
}
//运行结果如下:
2015-10-10 10:18:50.425 KindClass[1827:73759] is KindOfClass? YES!
2015-10-10 10:18:50.426 KindClass[1827:73759] is KindOfClass? YES!
2015-10-10 10:18:50.426 KindClass[1827:73759] is MemberOfClass? YES!
2015-10-10 10:18:50.426 KindClass[1827:73759] is MemberOfClass? NO!
//但是当子类对象是NS;类型时 isKindOfClass不受影响,而isMemberOfClass返回值一直是NO
NSMutableArray *array = [[[NSMutableArrayalloc]init]autorelease];
if ([array isKindOfClass:[NSArrayclass]]) {
NSLog(@" is KindOfClass? YES!");
}
if ([array isKindOfClass:[NSObjectclass]]) {
NSLog(@" is KindOfClass? YES!");
}
if ([array isMemberOfClass:[NSArray class]]) {
NSLog(@" is MemberOfClass? YES!");
}
if (![array isMemberOfClass:[NSObjectclass]]) {
NSLog(@" is MemberOfClass? NO!");
}
//运行结果如下:
2015-10-10 10:35:48.262 KindClass[1906:79483] is KindOfClass? YES!
2015-10-10 10:35:48.263 KindClass[1906:79483] is KindOfClass? YES!
2015-10-10 10:35:48.263 KindClass[1906:79483] is MemberOfClass? NO!
isMemberOfClass 只有当子类是该类的类型时,返回YES
UILabel *label = [[UILabelnew]autorelease];
if ([label isKindOfClass:[UILabelclass]]) {
NSLog(@" is KindOfClass? YES!");
}
if ([label isKindOfClass:[NSObjectclass]]) {
NSLog(@" is KindOfClass? YES!");
}
if ([label isMemberOfClass:[UILabel class]]) {
NSLog(@" is MemberOfClass? YES!");
}
if ([label isMemberOfClass:[NSObject class]]) {
NSLog(@" is MemberOfClass? NO!");
}
//运行结果如下:
2015-10-10 10:18:50.425 KindClass[1827:73759] is KindOfClass? YES!
2015-10-10 10:18:50.426 KindClass[1827:73759] is KindOfClass? YES!
2015-10-10 10:18:50.426 KindClass[1827:73759] is MemberOfClass? YES!
2015-10-10 10:18:50.426 KindClass[1827:73759] is MemberOfClass? NO!
//但是当子类对象是NS;类型时 isKindOfClass不受影响,而isMemberOfClass返回值一直是NO
NSMutableArray *array = [[[NSMutableArrayalloc]init]autorelease];
if ([array isKindOfClass:[NSArrayclass]]) {
NSLog(@" is KindOfClass? YES!");
}
if ([array isKindOfClass:[NSObjectclass]]) {
NSLog(@" is KindOfClass? YES!");
}
if ([array isMemberOfClass:[NSArray class]]) {
NSLog(@" is MemberOfClass? YES!");
}
if (![array isMemberOfClass:[NSObjectclass]]) {
NSLog(@" is MemberOfClass? NO!");
}
//运行结果如下:
2015-10-10 10:35:48.262 KindClass[1906:79483] is KindOfClass? YES!
2015-10-10 10:35:48.263 KindClass[1906:79483] is KindOfClass? YES!
2015-10-10 10:35:48.263 KindClass[1906:79483] is MemberOfClass? NO!
相关文章推荐
- 数据处理项目Postmortem
- python:科普 使用技巧
- 《Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法》--读书笔记
- 关于scanf要写两次的问题
- vagrant 入门3
- Eclipse 编译StanfordNLP
- 夏泽网 中国渔业统计年鉴年鉴资料网
- Exception in thread main java.lang.UnsopportedClassVersionError解决办法
- vagrant 入门4
- Stanford CoreNLP开源项目的3种编译和运行方式[2]
- div层调整z-index属性无效原因分析及解决方法
- vimium 基本使用快捷键
- 123
- ORACLE数据库测试数据插入速度
- vagrant 入门2
- ASP.Net学习笔记003--网站和WebApplication的区别
- 用直接路径(direct-path)insert提升性能的两种方法
- 小学生之Oracle分析函数
- Python中的闭包实例详解
- SAP R3 FI 上线 顾问设置教程(一)