1
有沒有人可以幫助我解釋更多?未知堆增長
我最小化我的代碼,使用按鈕來分配和添加UIPickerView到self.view。通過按下相同的按鈕,UIPickerView將從self.view中移除並釋放。
在每次刪除UIPickerView時,我都帶着Instrutments的HeapShot。我發現有時在堆生長中有0字節變化,4xx字節,... 2K字節和4K字節。沒有泄漏(紅色條)。
事實上,我擔心的是,當堆的使用量越來越大時。最後,我的應用程序會崩潰,現在是這種情況。當我做的拍照25倍,並提交到我的服務器,該堆增長爲1x MB(沒有用Instructments檢查無明顯漏。
任何更多的建議嗎?
這裏是我的代碼按鈕。看來,我的分配和釋放是corret
- (void) nextButtonClicked {
if (!pickerShown) {
UIPickerView *pickervTemp = [[UIPickerView alloc] initWithFrame:CGRectMake(0.0, 200.0, 320.0, 216.0)];
self.locationPicker = pickervTemp;
[pickervTemp release];
[_locationPicker setDelegate:self];
[_locationPicker setShowsSelectionIndicator:YES];
[self.view addSubview:_locationPicker];
pickerShown = YES;
} else {
pickerShown = NO;
[_locationPicker removeFromSuperview];
[_locationPicker release];
_locationPicker = nil;
}
return;
}
謝謝。這也是我的想法。看起來,當UI對象保持分配和釋放時,即使我看到相應的對象的dealloc被調用並執行,堆仍然會長大。 – SkyEagle888 2011-12-21 00:20:10