iOS:self.xx vs self->_xx vs _xx

2022-05-11  本文已影响0人  码农二哥

基本理解

  • 所有被声明为属性的成员,在iOS5 之前需要使用编译器指令@synthesize 来告诉编译器帮助生成属性的getter,setter方法。之后这个指令可以不用人为指定了,默认情况下编译器会帮我们生成。
  • 编译器在生成getter,setter方法时是有优先级的,它首先查找当前的类中用户是否已定义属性的getter,setter方法,如果有,则编译器会跳过,不会再生成,使用用户定义的方法。

深层理解

实战经验

延伸思考

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    _view1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        NSLog(@"%@", self.view1);
    });
}
上一篇下一篇

猜你喜欢

热点阅读