@interface 类名 (分类名称) // 方法声明 @end
@implementation 类名 (分类名称) // 方法实现 @end
typedef struct objc_class *Class;
Class c = [Person class]; // 类方法
或者
Person *p = [Person new]; Class c2 = [p class]; // 对象方法
Class c = [Person class]; Person *p2 = [c new];
使用NSLog和%@输出某个对象时,会调用对象的-description方法,并拿到返回值进行输出
使用NSLog和%@输出某个类对象时,会调用类对象+description方法,并拿到返回值进行输出
typedef struct objc_selector *SEL;
SEL s = @selector(test); SEL s2 = NSSelectorFromString(@"test");
// 将SEL对象转为NSString对象 NSString *str = NSStringFromSelector(@selector(test)); Person *p = [Person new]; // 调用对象p的test方法 [p performSelector:@selector(test)];
// 下面的代码会引发死循环 - (void)test { [self performSelector:_cmd]; }
原文:http://www.cnblogs.com/chenziqiang/p/4930305.html