检查类或类实例

时间:2013-12-06 14:22:32

标签: objective-c

如何检查id是类定义还是类实例?例如:

Class def =[NSString class];
NSString * inst= @"test";

[self check:def]; // should output "Class"
[self check:inst]; //should output "Instance"


-(void)check:(id)object
{
    if(objejct ... ){ // ???
        NSLog(@"Instance");
    }else{
        NSLog(@"Class");
    }
}

1 个答案:

答案 0 :(得分:3)

你需要

#import <objc/runtime.h>

那么你的检查功能需要看起来像这样

-(void)check:(id)object
{
    if(class_isMetaClass(object_getClass(object)))
    {
        NSLog(@"Class");
    }
    else
    {
        NSLog(@"Instance");
    }
}
相关问题