我自己解決了大部分內存泄漏問題,但這個問題非常嚴重。發生以下情況。我需要在表格視圖中從Facebook加載信息,此表格視圖具有刷新功能。這個tablview中的所有行都是從一個數組中加載的,這個數組由數據對象組成,因爲它們需要排序。我的代碼看起來像這樣(我已經刪除了不相關的部分)。使用retain iOS刷新表格視圖時發生內存泄露
這部分貫穿來自Facebook的結果,並將其放置在一個數組
- (void)request:(FBRequest*)request didLoad:(id)result
{
if ([result isKindOfClass:[NSDictionary class]]) {
//Setting single result into result dictionary
NSArray *resultArray = [result allObjects];
result = [resultArray objectAtIndex:0];
for(int i=0; i<13; i++){
//Set all retrieved data in containerArray
Post *newPost = [[[Post alloc] init] autorelease];
newPost.created_time = created_time1;
newPost.message = message1;
newPost.picture = picture1;
newPost.fbSource = fbSource1;
[containerArray insertObject:newPost atIndex:i];
//Reload the table in the tableView
[self.tableView reloadData];
}
NSSortDescriptor *sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"created_time"
ascending:NO] autorelease ];
sortedArray = [containerArray sortedArrayUsingDescriptors:[NSMutableArray arrayWithObject:sortDescriptor]];
[sortedArray retain];
}
}
到目前爲止,這個工程並沒有給出內存泄漏。但一旦刷新函數被調用。該功能將再次運行。然後創建內存泄漏,我想可能是由於[sortedArray retain]函數。但是沒有這個函數,數組不會加載,我得到一個EXC_BAD_ACCESS。如果我釋放sortedArray,我也會得到EXC_BAD_ACCESS,因爲sortedArray消失了,不能被調用。
有人知道如何解決這個問題?日Thnx!
這實際上馬上就起作用了。不知道爲什麼我沒有看到...但是,謝謝你!你的編輯看起來更棒!試過之前,但沒有把自己。在sortedArray – Jos 2011-06-08 15:29:59