Objective | 您所在的位置:网站首页 › gethostbyname3 › Objective |
经过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 实验室设备网 版权所有 |