Bir uygulama içinde (örneğin, ios5) bir yöntemde bir örneğe başvurmak için bir bloğun içinde kullanılan zayıf değişkeni bildirir. bir görünüm denetleyicisi.Objective-C ARC __weak değişken başvurusu "__weak özniteliği otomatik değişkende belirtilemez" uyarısını tetikler
__weak nitelik Bu uygulamada otomatik değişken
üzerinde belirtilemez Ben çok zayıf başvuruları kullandım:
QRCodeViewController * __weak weakSelf = self;
sorun derleyici söyleyen bir uyarı gösterir olmasıdır ve hiç böyle bir uyarı görmedim, diğer sınıflardan tek fark, bu sınıf bir .mm dosyasında uygulandığı için bir C++ nesnesi kullandığından ve proje bir .m olarak bırakılırsa derleyemem.
Kodun düzgün çalıştığını söylemeliyim.
Herhangi bir öneriniz var mı?
o '__weak QRCodeViewController * weakSelf = öz olmamalı;'? –
@Martin ya bir çalışır, onlar eşdeğerdir, senin yolun daha sık kullanıldığını görüyorum, ama Andrea'nın yolu Apple'ın önerdiği yoldur. –
Benzer soru: http://stackoverflow.com/questions/10431110/nested-blocks-and-references-to-self. Cevap, dağıtım hedefinin 4.0 olarak ayarlandığını, ancak sizin için böyle olmadığını söyledi. Doğru? –