Rumah  >  Soal Jawab  >  teks badan

objective-c - 成员变量如何赋值的

我们都知道属性的赋值是调用属性的setter方法, 可是成员变量是如何赋值的呢? 他的内部实现原理是什么?

怪我咯怪我咯2698 hari yang lalu492

membalas semua(2)saya akan balas

  • ringa_lee

    ringa_lee2017-05-02 09:29:14

    @implementation ViewController
    
    {
        UIView *_iconView;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        NSLog(@"%@", self->_iconView);
        NSLog(@"%@", _iconView);
    }

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-02 09:29:14

    Saya rasa saya ingin bertanya tentang perbezaan antara ivar dan harta.
    harta = ivar+getter+setter

    Sebagai contoh
    harta (serahkan) int a akan menjana pembolehubah ahli _a secara lalai, yang kami panggil ivar
    dan juga akan menjana kaedah penetap, yang kelihatan seperti ini:

    -(void)setA:(int)a {
        _a = a;
    }
    

    Kaedah getter juga akan dihasilkan, yang kelihatan seperti ini:

    -(int)a {
        return _a;
    }
    

    Pada masa yang sama, ia akan memberikan _beberapa kelebihan keuntungan, seperti rujukan kuat yang kuat dan rujukan lemah yang lemah untuk mengawal kitaran hayat pembolehubah ini.

    Jadi harta hanyalah satu bentuk pengaturcaraan, anda tidak perlu memberi terlalu banyak perhatian kepadanya, anda boleh mengikuti rutin anda sendiri sepenuhnya.

    balas
    0
  • Batalbalas