黑马程序员技术交流社区

标题: OC特有的语法2 [打印本页]

作者: cxl19900517    时间: 2015-6-16 22:24
标题: OC特有的语法2

@interface类名 (分类名称)
// 方法声明
@end
@implementation类名 (分类名称)
// 方法实现
@end

给NSString增加一个对象方法:计算当前字符串中阿拉伯数字的个数



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和%@输出对象时,结果是<类名:内存地址>,字符串除外
使用NSLog和%@输出某个类对象时,会调用类对象+description方法,并拿到返回值进行输出   默认输出类名

typedef struct objc_selector        *SEL;

SEL s = @selector(test);
将字符串转成SEL 数据,从而调用该方法
SEL s2 = NSSelectorFromString(@"test");

// 将SEL对象转为NSString对象
NSString *str = NSString FromSelector(@selector(test));

Person *p = [Personnew];
// 调用对象p的test方法
[p performSelector:@selector(test)];
[p performSelector:@selector(test:) withObject:@“123”];
方法名 包含冒号

// 下面的代码会引发死循环
- (void)test
{
    [self performSelector:_cmd];
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2