Day.01.18 Foundation 对象与类的关系

#import <Foundation/Foundation.h>

#import "ClassA.h"//新建a是NSObecjt的子类,b是a的子类
#import "ClassB.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
    //构建类名,构建的都是ClassA
        Class className = NSClassFromString(@"ClassA");
        
        Class className2 = [ClassA class];
        
        //1.查看某个对象是否是某个类的对象
        
        ClassB *b = [[ClassB alloc]init];
        
        BOOL isYes1 = [b isMemberOfClass:[ClassB class]];
        
        BOOL isYes2 = [b isMemberOfClass:[ClassA class]];
        
        NSLog(@"b%@ClassB的对象",isYes1?@"是":@"不是");
                                            //,出错三目运算法 要是? -> :
        
        NSLog(@"b%@ClassA的对象",isYes2?@"是":@"不是");
        
        //2.查看某个对象是否是某个类的派生对象 -》b是否是B的或B的父类的对象
        
        BOOL isYes3 = [b isKindOfClass:[ClassB class]];
        
        BOOL isYes4 = [b isKindOfClass:[ClassB class]];
        
        NSLog(@"b%@ClassB的派生对象",isYes3?@"是":@"不是");
        
        NSLog(@"b%@ClassA的派生对象",isYes4?@"是":@"不是");
    
    }
    return 0;
}

2016-01-18 19:00:02.531 Foundation 对象与类的关系[3854:595807] b是ClassB的对象
2016-01-18 19:00:02.533 Foundation 对象与类的关系[3854:595807] b不是ClassA的对象
2016-01-18 19:00:02.533 Foundation 对象与类的关系[3854:595807] b是ClassB的派生对象
2016-01-18 19:00:02.533 Foundation 对象与类的关系[3854:595807] b是ClassA的派生对象
Program ended with exit code: 0
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容