Katakanlah saya memiliki objek bernama MyClass, yang memiliki properti yang didefinisikan sebagai @property (nonatomic, retain) NSString *foo;
dan saya mensintesis properti itu.
Kemudian di kelas lain, katakanlah delegasi aplikasi Saya mendefinisikan sebuah string (tetapi bisa berupa apa saja) NSString *myString = [[NSString alloc] initWithString:@"Hi"];
dan memanggil instance MyClass: [myClass setFoo:myString];
Apa yang sebenarnya terjadi? Apakah referensi ke ruang yang dialokasikan untuk myString
sudah disetel? Atau apakah ia mendapatkan apa yang ada di memori yang dialokasikan untuk myString
dan menyetelnya ke memori yang dialokasikan untuk foo
, karena saya memanggil retain
pada foo
?
Dan saya harus melepaskan myString
di delegasi aplikasi. Dan saya harus melepaskan foo
di Kelas Saya, karena tetap dipertahankan, tetapi apakah saya harus melepaskannya lagi karena variabel lain yang dialokasikan telah ditetapkan padanya?