首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未知的堆增长

未知的堆增长
EN

Stack Overflow用户
提问于 2011-12-20 15:44:48
回答 1查看 114关注 0票数 1

有没有人可以帮我或解释更多?

我最小化了我的代码,使用一个按钮来分配并将UIPickerView添加到self.view中。通过按下相同的按钮,UIPickerView将从self.view中移除并释放。

在每次删除UIPickerView时,我使用了一个带有Instrutments的HeapShot。我发现有时候,在堆增长中有0字节的变化,4xx字节,... 2K字节和4K字节。没有泄漏(红色条)。

实际上,我担心的是当Heap使用量越来越大时。最后,我的应用程序会崩溃,现在就是这种情况。当我拍了25次照片并提交到我的服务器上时,堆增长到1xMB(通过Instructments检查没有明显的泄漏。

还有什么建议吗?

这是我的按钮代码。我的分配和释放似乎是正确的

代码语言:javascript
复制
- (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;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-21 04:44:18

UIPickerView很有个性。就像UIWebView一样,你不想太频繁地创建这些东西,即使你后来把它们扔掉了。这不是一个漏洞,但你的堆将会上升。

您的问题的解决方案可能是只创建一次选取器,并保留它以供重用,只有在拆卸父视图控制器时才丢弃它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8572204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档