Apa perbedaan antara ini:
@property (nonatomic, weak) id <SubClassDelegate> delegate;
dan ini:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
Saya ingin menggunakan properti untuk delegasi.
Jawaban:
Satu-satunya perbedaan antara weakdan assignadalah jika objek yang weakditunjuk oleh properti dibatalkan alokasinya, nilai weakpenunjuk akan disetel ke nil, sehingga Anda tidak akan pernah mengambil risiko mengakses sampah. Jika Anda menggunakan assign, itu tidak akan terjadi, jadi jika objek dialokasikan dari bawah Anda dan Anda mencoba mengaksesnya, Anda akan mengakses sampah.
Untuk objek Objective-C, jika Anda berada di lingkungan tempat Anda dapat menggunakannya weak, Anda harus menggunakannya.
UITableViewmemiliki assignuntuk delegasinya:@property (nonatomic, assign) id <UITableViewDelegate> delegate;