NSCutableArray'ın ARC'yi kullanmak üzere yapılandırılan bir projede bağlantılı bellek sızıntıları yaşıyorum ve bunun sizin için bunları halledeceğini düşündüm.ARC bellek sızıntıları
Aşağıdaki kod NSNumbers sızıntılarını tetikliyor:
NSMutableArray *myArray = [[NSMutableArray alloc] init];
NSNumber *myNumber = [NSNumber numberWithFloat:10];
[myArray addObject:myNumber];
son satırı Running verir ayıklayıcısında aşağıdaki:
Bunun dışında, c mutant diziye doğru eklenir,objc [1106]: Sınıf __NSCFNumber nesne 0x765ffe0 hiçbir ile autoreleased yerde havuz - sadece sızıntı yapmak - nesc_autoreleaseNoPool() üzerinde hata ayıklamak için( )
Yanlış bir şey yapıyorum mu?
Not: Projede ARC ile çalışamayacağım bir sınıf var ve bu yüzden derleyici bayrağı -fno-objc-arc kullanarak ARC'den çıkardım. Ancak, ARC kullanan diğer sınıflarda sızıntılar meydana geliyor. Bunun ilgili olup olmadığından emin değilim.
Yardımlarınız için çok teşekkürler.
bu kod ayrı bir iş parçacığı üzerinde çalıştırmak ediliyor mu? Veya "@ autoreleasepool" içeriğinin dışındaki ana yöntemde mi? –
Projedeki @autoreleasepool'un tek sözü ana hattır. Sorun kodu diğer sınıflarda. Yöntemin ayrı bir iş parçacığında olup olmadığını nasıl kontrol edebilirim? Ben bilerek ayrı bir iş parçacığı üzerine koymadım ama gerçekleşmiş olabilir. Projeyi, çevrimiçi olarak bulduğum ses ünitelerini kullanan resmi olmayan örnek kodlara dayanarak yaptım, bu yüzden tüm öğelerden emin değilim. – Spinoxa
Merhaba Richard, Sızıntılar, arkasından hariç tutulan sınıf olan Ses Birimi'ni oluşturan aynı iş parçacığı üzerinde, ana olarak ayrı bir iş parçacığında ortaya çıkıyor. İşlemi ana konuya yeniden yönlendirebilmemin bir yolu var mı? Yoksa Ses Ünitesinin ARC ile çalışmasını sağlamak için tekrar denemeliyim? Yardımınız için çok teşekkürler, sanırım olası sebebi işaret ettiniz! – Spinoxa