OC基础

来源:互联网 发布:眼部干纹 知乎 编辑:程序博客网 时间:2024/04/29 10:42
1. @synthesize    *用在@implementation    *用来自动生成setter和getter方法的实现    *用@synthesize age = _age;就可以代替- (int)age{    return _age;}- (void)setAge:(int)age{    _age = age;}2. @synthesize的细节    1> @synthesize age = _age;       *setter和getter实现中会访问成员变量_age       *如果如果成员变量不存在,就会自动生成一个@private的成员变量_age    2> @synthesize age;       *setter和getter方法中会访问变量age       *如果成员变量age不存在,就会子自动生成一个@private的成员变量age    3> 手动实现       *若手动实现了setter方法,编译器就会自动生成getter方法       *若手动实现了getter方法,编译器就会自动生成setter方法       *若同时实现setter和getter方法,编译器就不会自动生成不存在的成员变量了3. @property新特性       1>自从XCode4之后,@property就独揽了@synthesize的功能,也就是说@property可以同时生成setter和getter的声明和实现       2>默认情况下,setter和getter方法中的实现,会去访问下划线_开头的成员变量4. 构造方法1>init方法的重写- (instancetype)init{    if([self = [super init]){        _age = 10;    }    return self;}2>自定义构造方法- (instancetype)initWithName:(NSString *)name{    if([self = [super init]){        _name = name;    }    return self;}5. SEL表示方法的存储位置,每个类的方法列表都存储在类对象中,每个方法都有一个与之对应的sel类型的对象,根绝一个SEL对象就可以找到方法的地址,进而调用方法。1> 创建SEL对象SEL s = @selector(test);SEL s2 = NSSelectorFromString(@"test");2> SEL对象的其它用法// 将SEL对象转为NSString对象NSString *str = NSStringFromSelector(@selector(test));// 调用对象p的test方法Person *p = [Person new];[p perfromSelector:@selector(test)];
0 0