objektif-c - OC Adalah lebih baik untuk tidak menggunakan sifat dalam kaedah permulaan atau dealloc, mengapa?
習慣沉默
習慣沉默 2017-05-02 09:29:36
0
3
715

Saya telah melihat perihalan ini beberapa kali: Sebaik-baiknya jangan gunakan atribut dalam kaedah permulaan atau dealloc, kerana anda tidak pasti sama ada diri sebenarnya memanggil contoh yang anda mahukan.

習慣沉默
習慣沉默

membalas semua(3)
漂亮男人

Di manakah anda menontonnya? Itu semua adalah masa lalu, tiada sekatan dalam ARC, anda boleh menggunakannya sesuka hati.

Pada zaman dahulu pengurusan memori manual, memanggil atribut akan melibatkan penambahan atau penolakan pembilang rujukan, dan self = [super ...] objek yang dimulakan tidak semestinya objek kelas semasa, ia mungkin "varian" atau kelas peribadi (objc dalam kelas mempunyai perbezaan antara class dan metaclass), jadi jika anda tidak tahu cara menambah atau menolak pembilang rujukan dalam kaedah penetap atribut, anda hanya boleh mengekalkan dan melepaskan untuk ivar.

- (id)initWithString:(NSString *)str
{
    self = [super init];
    if (self) {
        _foo = [str copy];
    }
    return self;
}

- (void)dealloc
{
    [_foo release];
    [super dealloc];
}

kekalkan(salinan,baharu) dan keluarkan muncul secara berpasangan

给我你的怀抱

Kerana ia akan menghasilkan rujukan bulat, seperti perwakilan, yang tidak akan dikeluarkan

漂亮男人

Kerana ada kategori (Kategori), setter, getter, KVO, dan lain-lain anda perlu memberi perhatian kepadanya
Yang paling penting adalah kerana klasifikasi boleh memanggil atribut dan kaedah pengkelasan. tetapi _ tidak berfungsi, anda perlu memberi perhatian

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan