[英]Why is Instruments reporting custom UITableViewCell code as a memory leak?
我仍在嘗試通過iPhone SDK的內存管理找到自己的方式,而且我不確定為什么儀器將某些代碼塊報告為內存泄漏。 我已經按照教程中的這些部分進行了編程,所以我不確定自己在做什么錯。
違反的代碼塊:
DreamTableCell *cell = (DreamTableCell *)[tableView dequeueReusableCellWithIdentifier:cellID];
if ( cell == nil )
cell = [[[DreamTableCell alloc] initWithFrame:CGRectZero reuseIdentifier:cellID] autorelease];
另外,據我所知,有一個DreamTableCell的自定義方法,其中加載了UITableViewCell的NIB文件,沒有任何異常:
- (id)initWithFrame:(CGRect)frame reuseIdentifier:(NSString *)reuseIdentifier {
NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"DreamTableCell" owner:nil options:nil];
for ( id item in objs )
if ( [item isKindOfClass:[DreamTableCell class]] ) {
self = item;
break;
}
return self;
}
是什么導致內存泄漏在這里-我想念什么?
這是一行:
self = item;
您將self
設置為新的實例變量,並且由於您處於init
,因此已創建了一個現有實例。 您需要先釋放全新的自我,然后再將其設置為其他事物:
[self release];
self = item;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.