Day.01.18 Foundation 对象与类的关系

#import 

#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

你可能感兴趣的:(Day.01.18 Foundation 对象与类的关系)