ARC etkinleştirildiğinde, ayarlayıcıyı doğru şekilde geçersiz kıldım mı?Ark ile ayarlamayı geçersiz kılma
cevap
Evet, bu doğru. Ayrıca bunun gerçekten yapılması gereken doğru şey olduğuna güvenmek için biraz zaman harcadım.
Bu durumda, standart oluşturulan ayarlayıcıdan daha fazlasını yapmadığınız için geçersiz kılma gerekli değildir, farkında mısınız? Yalnızca setImageURLString:
'a daha fazla kod eklerseniz, ayarlayıcıyı geçersiz kılmanız gerekir.
Evet. Bunu anladım. Ek kodumu eklemek istediğim yorumu ekliyorum. Cevap için çok teşekkür ederim. – rowwingman
Oh, doğru, üzgünüm, bu yorumu cömertçe göz ardı ettim. :) – Pascal
İlginç bir deney ne olurdu biliyor musun? Yorum rengini değiştirme (SO ve diğer siteler ve IDE'ler) ... genellikle açık gri veya göze çarpmayan bir şeydir. # ff0000 belki? Fark eder mi? Programcıların, bir şeyin nasıl çalıştığını özellikle anlamaya çalışmadıkça, yorumları görmezden gelmek için kullanılırız. Bu durumda, bazen onları da görmezden geliriz. – figha
@Pascal tarafından verilen yanıtı genişletmek istiyorum. Bunu yapmak kesinlikle doğru bir şey olduğunu eklemek istiyorum ve kodun ne için derlendiğini kontrol ederek kontrol edebilirsiniz. according to LLVM yapar _objc_storeStrong
çağrısı
.align 2
.code 16
.thumb_func "-[Article setImageURLString:]"
"-[Article setImageURLString:]":
push {r7, lr}
movw r1, :lower16:(_OBJC_IVAR_$_Article._imageURLString-(LPC7_0+4))
mov r7, sp
movt r1, :upper16:(_OBJC_IVAR_$_Article._imageURLString-(LPC7_0+4))
LPC7_0:
add r1, pc
ldr r1, [r1]
add r0, r1
mov r1, r2
blx _objc_storeStrong
pop {r7, pc}
Not: Ben tashihi gitmek, ama temelde bu kodu (ARMv7) aşağı derler konusunda bir blog post yazdı Yani
id objc_storeStrong(id *object, id value) {
value = [value retain];
id oldValue = *object;
*object = value;
[oldValue release];
return value;
}
, cevap sorunuz, evet doğru. ARC, eski değerin doğru şekilde çıkarılmasını ve yeni değerin korunmasını eklemiştir.
Çağrı [Muhtemelen karmaşık cevap üzerinde, ancak ileride kendiniz için ARC ilgili soruya bu tür yanıtlayan nasıl gidebiliriz göstermek yararlı olduğunu düşündü]
bu kadar[super setImageURLString:theString];
superclass setImageURLString bir uygulama olması muhtemel değildir: –
Olsa bile, muhtemelen bunu yapmak istemediğiniz şeyler yapar. –
- 1. == geçersiz kılma == geçersiz kılma
- 2. "Soyut geçersiz kılma" neden subtraitda "geçersiz kılma" gerektirmiyor?
- 3. geçersiz kılma temsilci özelliği
- 4. Ruby'de geçersiz kılma == işleci
- 5. AccessTokenExpireTimeSpan'ı geçersiz kılma
- 6. geçersiz kılma klon klonlanamaz
- 7. RxJava Observable.cache geçersiz kılma
- 8. JQuery ile vücut arka planını geçersiz kılma?
- 9. Notları plone.memoize.ram ile geçersiz kılma/önleme
- 10. Alt öğe ile Swift özelliğini geçersiz kılma
- 11. XCode 4.5 ile özellik geter'i geçersiz kılma
- 12. Depolanmış bir özellik 'description' ile geçersiz kılma '
- 13. Geçersiz kılma log4j.properties
- 14. Javascript: XMLHttpRequest.open'i geçersiz kılma()
- 15. Bootstrap CSS'yi geçersiz kılma
- 16. geçersiz kılma yöntemi
- 17. Form verilerini geçersiz kılma
- 18. Geçersiz kılma CRL önbelleği
- 19. geçersiz kılma özelliği getters
- 20. Hata: == geçersiz kılma
- 21. UserManager'ı django'ya geçersiz kılma
- 22. Java'da Sabitleri Geçersiz Kılma
- 23. geçersiz kılma AuthorizeCore Nedense
- 24. ToggleButton Stili Geçersiz Kılma
- 25. Joomla makalesini geçersiz kılma
- 26. AppConfig.ready geçersiz kılma()
- 27. Hazırda bekletme geçersiz kılma @transient
- 28. UIPickerView'de vurgulanan seçimi geçersiz kılma
- 29. Varsayılan php işlevini geçersiz kılma
- 30. Bir Rolün Özniteliğini Geçersiz Kılma
Evet, bu bana doğru görünüyor. Beklediğin gibi değil mi çalışıyor? –