#import "DCApple.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
// 通過字符串來獲取Class
Class clazz = NSClassFromString(@"NSDate");
NSLog(@"%@" , clazz);
// 直接使用Class來創建對象
id date = [[clazz alloc] init];
NSLog(@"%@" , date);
// 通過對象來獲取Class
NSLog(@"%@" , [date class]);
// 通過類來獲取class
NSLog(@"%d" , clazz == NSDate.class);
}
return 0;
}
2014-12-01 09:06:25.917 reflection[1179:303] NSDate
2014-12-01 09:06:25.924 reflection[1179:303] 2014-12-01 01:06:25 +0000
2014-12-01 09:06:25.925 reflection[1179:303] __NSDate
2014-12-01 09:06:25.925 reflection[1179:303] 1
// reflection
//
// Created by mac on 14-12-1.
// Copyright (c) 2014年 mac. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "DCApple.h"
int main(int argc, const char * argv[]) {
NSLog(@"app是否爲DCApple及其子類的實例:%d",
[app isKindOfClass: DCApple.class]);
NSLog(@"app是否爲NSObject及其子類的實例:%d",
[app isKindOfClass: NSObject.class]);
NSLog(@"app2是否爲DCApple及其子類的實例:%d",
[app2 isKindOfClass: DCApple.class]);
NSLog(@"app2是否爲NSObject及其子類的實例:%d",
[app2 isKindOfClass: NSObject.class]);
// 判斷對象是否實現了指定協議
NSLog(@"app是否實現DCEatable協議:%d",
[app conformsToProtocol: @protocol(DCEatable)]);
NSLog(@"app2是否實現了DCEatable協議:%d",[app2 conformsToProtocol: @protocol(DCEatable)]);
}
return 0;
2014-12-01 14:07:26.220 reflection[2195:303] DCApple1
2014-12-01 14:07:26.221 reflection[2195:303] app是否爲DCApple的實例:1
2014-12-01 14:07:26.221 reflection[2195:303] app是否爲NSObject的實例:0
2014-12-01 14:07:26.222 reflection[2195:303] app2是否爲NSObject的實例:0
2014-12-01 14:07:26.222 reflection[2195:303] app2是否爲DCApple的實例:0
2014-12-01 14:07:26.223 reflection[2195:303] app2是否爲DCApple的實例:1
2014-12-01 14:07:26.223 reflection[2195:303] app是否爲DCApple及其子類的實例:1
2014-12-01 14:07:26.224 reflection[2195:303] app是否爲NSObject及其子類的實例:1
2014-12-01 14:07:26.224 reflection[2195:303] app2是否爲DCApple及其子類的實例:1
2014-12-01 14:07:26.225 reflection[2195:303] app2是否爲NSObject及其子類的實例:1
2014-12-01 14:07:26.225 reflection[2195:303] app是否實現DCEatable協議:1
2014-12-01 14:07:26.225 reflection[2195:303] app2是否實現了DCEatable協議:1