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