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]); |