self、super、id的用法

一、self的用法

oc中的self有点想C++中的this指针,它指向的是调用该方法的对象或者类,看一下例子:

@implementation Book

- (instancetype)initWithTile:(NSString *)title withPageNum:(NSInteger)pageNum

{

    if(self = [super init])

    {

        _pageNum = pageNum;

        _title = title;

    }

    return self;

}

- (void)setTitle:(NSString  *)title

{

    _title = title;

}

- (void)setPageNum:(NSInteger)pageNum

{

    _pageNum = pageNum;

}

- (NSString *)title

{

    return _title;

}

- (NSInteger)pageNum

{

    return _pageNum;

}

- (void)showDetail

{

    NSLog(@"%@ has %ld pages.",[self title],[self pageNum]);

}

@end

这是Book类的. m文件中的函数定义,其中有每个元素的setter方法和getter方法,在showDetail这个方法中调用了元素title和pageNum的getter方法。

当有Book类对象book调用[self title]和[self pageNum]时,self指向的就是对象book,这个是实例方法,同理如果是类方法,那就是调用函数的类。

二、super、id

super则是指向之类的夫类的,用super修饰就可以调用夫类的函数;

id相当于c语言中的Void *可以返回任意类型;

最后附上一张Xcode常用的快捷键

 

posted @ 2015-09-28 19:37  军机处  阅读(312)  评论(0)    收藏  举报