NSObject相当于Java中的基类object。
Student *stu=[[[Studentalloc]init]autorelease]; //返回对象的所有信息 Class c=[stu class];//Class c=[Student class]; //判断对象是否属于某个类的实例 NSLog(@"%i",[stu isKindOfClass:c]); //判断子类是否属于某个类的实例 [stu isKindOfClass:[NSObjectclass]]; //判断对象是否属于某个类的实例不不包括子类 [stu isMemberOfClass:[Studentclass]]; //判断某个对象是否实现某个协议 [stu conformsToProtocol:@protocol(NSObject)]; //判断对象是否实现某个方法
SEL sel =NSSelectorFromString(@"say");
[stu respondsToSelector:@selector(test)]; //执行某个selector [stu performSelector:@selector(test)]; //延时调用某个方法,缺点只能传入一个参数 [stu performSelector:@selector(test:)withObject:@"传入参数"afterDelay:100]; |
class反射有点Java中反射的意思
//字符串变class NSString *str=@"Student"; Class class=NSClassFromString(str); Student *stu= [[class alloc] init]; NSLog(@"%@",stu); [stu release]; // class变字符串 NSStringFromClass([Student class]); |