Objective 您所在的位置:网站首页 gethostbyname3 Objective

Objective

2023-03-10 08:20| 来源: 网络整理| 查看: 265

经过3个小时左右,我终于设法修复了视图控制器中的内存泄漏。泄漏是由UIPickerView引起的,它的属性在头文件中被设置为'retain'。Objective-C内存管理 - 很确定我这样做都是错误的

下面的代码设法解决它:

- (void)viewDidLoad { [super viewDidLoad]; myPicker = [[[UIPickerView alloc] initWithFrame:CGRectZero]autorelease]; } - (void)dealloc { [super dealloc]; [myPicker release]; myPicker = nil; }

请不要告诉我这个代码是如何令人震惊的是......我知道这是不好的。我有一个版本,和一个autorelease。问题是,如果我更改或删除上述任何部分,内存泄漏将返回。

我,虽然我知道C内存管理是如何工作的目标,显然不是...

为什么上面的代码修复内存泄漏,以及什么可能正确版本的代码样子的?

-

编辑:

如果任何人有同样的问题,或者是有兴趣的 - 但问题是,在我班上的其它目的之一是设置为“保留”,而不是“分配”。 (如果你不拥有一个对象,它应该有属性分配,而不是保留)。

就像Cannondale所说的那样,删除多余的保留可以修复所有的问题,只需要一个版本。

来源

2011-01-14 Jordan Smith

+0

很高兴听到您整理出来。不错的一个:) – RedBlueThing 2011-01-14 06:43:20

+0

这可能有所帮助:http://interfacelab.com/objective-c-memory-management-for-lazy-people/ – hlfcoding 2011-01-18 06:32:01



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有