8

İki UIViewControllers var ve düğmelere sega (modal) tetikleniyor. Geri ve ileri geri atlarken herhangi bir bellek sızıntısı neden olup olmadığını keşfetmek istedim ve ben ayrılmış bellek, Yaşam Sonu & & ayrılmış oluyor, nihayet uygulama çökmesine bırakacaktır. Tek bir kod satırım yok - saf UIViewControllers ile çalışıyorum. Yanlış yapıyor olabilir ne storyboardStoryboard bellek sızıntılarına neden oluyor Seferber

profiler 1

profiler 2 project's settings

?
Proje ayarlarında yanlış bir şey ayarlayabilir miyim?
Profiler'in istatistiklerini kötü okuyorum mu?
Cenaze törenleri ile çalışırken özel yayınlama komutları vermem gerekir mi?

cevap

13

Modelleri doğru kullanmıyorsunuz. Uyguladığınız gibi, geldiğiniz örneğe geri dönmek yerine, her görüntü denetleyicisinin yeni bir örneğini oluşturuyorsunuz. Bu nedenle bellek kullanımınız artmaya devam ediyor.

1) tip id arasında delegate olarak adlandırılan bir özellik oluşturmak görünümü denetleyicisi 2'de görünüşüdür kontrol ünitesi 1
2) 'de viewController2Done gibi bir yöntem tanımlar:

IOS 6 önce bu işlemek için doğru bir şekilde oldu . görünümü denetleyicisi 1 prepareToSegue içinde
3), [delegate viewController2Done]
5) viewController2Done çağrı [self dismissModalViewControllerAnimated:YES]
çağrı görünümü denetleyicisi 1 dönme zamanı görünüşüdür 2 kontrol bölgesi görünüşüdür 2 kontrol
arası) delegate ayarlamak

Bu yöntem, iOS 6'da hala çalışır, ancak bunun yerine kullanılabilen yeni bir unwind segue vardır. Kullanmak için, bu kadar sevdiği görünümü denetleyicisi 1'de bir yöntemi tanımlayacak:

Objective-C:

- (IBAction)unwindFromViewController2:(UIStoryboardSegue *)segue 
{ 
    NSLog(@"and we are back"); 
} 

Swift:

@IBAction func unwindFromViewController2(segue: UIStoryboardSegue) { 
    print("and we are back") 
} 

Sonra kontrolünü olur Görünüm denetleyicisindeki 2 düğmeden, Storyboard'daki görüntü denetleyicinin üzerindeki çubuktaki turuncu çıkış simgesine sürükleyin. Açılırsa, unwindFromViewController2 ve voila'yı seçersiniz, işiniz bitti.

enter image description here

+0

OMG, aptalım. Teşekkür ederim! – Piotr

İlgili konular