UICachedDeviceWhiteColor görüntüleyen bir bellek sızıntısı var. Ben hiçbir yerde UICachedDeviceWhiteColor kullanmıyorum ve bunun üzerine bir arama bu iPhone-SDK bir hata olduğunu söyleyerek insanları döner. Bu blog girişi bulunan: http://piezoelectrics.blogspot.com/2009/02/uicacheddevicewhitecolor-leak-in-iphone.htmlUICachedDeviceWhiteColor ve NSAutoRelease tablo hücresi mem sızıntıları için
ama
#import "NSAutoreleasePool.h"
Bir "hatası: NSAutoReleasePool.h: böyle bir dosya veya dizin" olsun bulamıyor. Bu bellek sızıntısı veya masa hücrelerini uçlarından ayırmanın doğru bir yolu var mı? İşte
Şu anda bunu yapıyorum nasıl:
Burada bir alloc görmüyorum
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = nil;
cell = [tableView dequeueReusableCellWithIdentifier:@"CellNameIdentifier"];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"CellName" owner:self options:nil];
//cellName is IBOutlet to XIB's tablecell. I reference it several times in this calss
cell = cellName;
}
return cell;
} öyleyse neden bir mem sızıntısı olurdu? Çünkü mülk beyanının
@property (nonatomic, retain) IBOutlet UITableViewCell *cellName;
# 1 için, özellik nitelikleri yalnızca 'nonatomic' içeriyor mu? # 3 için, hücrenin otomatiği nerede ... dealloc - ama bu doğru demek değil mi? – 4thSpace
Bir yorumda ayrıntı veremiyorum (çok kısa). Objektif C bellek yönetim kağıdını okumalısınız gibi geliyor. Referans sayılarını sıkı bir şekilde kavradığınızdan emin olun ve saklayın, bırakın ve bırakın. Otoriterlik konusunda da bir bölüm var. Yardım edebilirsem bana [email protected] adresinden bana mail gönder. –