IBOutlet
performans açısından güçlü olmalı. Bkz Film Şeridi başvurusu, güçlü IBOutlet, IOS Sahne dock 9
Bu paragrafta açıklandığı gibi, görünüm denetleyicisinin görünümünün alt görünümleri için çıkışlar zayıf olabilir, çünkü bu alt görünümler zaten uç dosyasının üst düzey nesnesine aittir. Ancak, bir Çıkış zayıf bir işaretçi olarak tanımlandığında ve işaretçi ayarlandığında, ARC çalışma zamanı işlevini çağırır:
id objc_storeWeak(id *object, id value);
Bu, nesne değerini anahtar olarak kullanarak işaretçiyi (nesne) bir tabloya ekler. Bu tabloya zayıf tablo denir. ARC bu tabloyu uygulamanızın tüm zayıf işaretlerini saklamak için kullanır. Şimdi, nesne değeri yeniden konumlandırıldığında, ARC zayıf tablo üzerinden yinelenecek ve zayıf referansı nil değerine ayarlayacaktır. Alternatif olarak, ARC şunları arayabilir:
void objc_destroyWeak(id * object)
Ardından, nesne kayıtsız kalır ve objc_destroyWeak tekrar çağırır:
objc_storeWeak(id *object, nil)
Zayıf bir referansla ilişkilendirilen bu defter tutma, güçlü bir referansın yayınlanmasından 2-3 kat daha uzun sürebilir. Bu nedenle, zayıf bir referans, çıkışları güçlü olarak tanımlayarak kaçınabileceğiniz çalışma zamanı için bir ek yük getirir.
Xcode 7'den itibaren, strong
WWDC 2015 oturumu 407 Arayüz Oluşturucu'da UI Tasarımlarını Uygulama'yı izlerseniz , ( http://asciiwwdc.com/2015/sessions/407 transkripti )
Ve belirtmek istediğim son seçenek, güçlü veya zayıf olabilen depolama türüdür.
Genel olarak çıkışınızı güçlü hale getirmelisiniz, özellikle de çıkışı bir alt görünüme veya her zaman görünüm hiyerarşisi tarafından korunmayacak bir kısıtlamaya bağlıyorsanız.
Bir çıkışı gerçekten zayıflatmanız için gereken tek zaman, görünüm hiyerarşisini yedekleyen bir şeye başvuran ve genel olarak önerilmeyen özel bir görünümünüz varsa.
Bu yüzden güçlü seçeceğim ve çıkışımı oluşturacak bağlantıya tıklayacağım.
IBOutletCollection()
olmamalıweak
, aksi halde olarak dönernil
.