好的,所以我开发iPhone应用程序的一半,我在内存管理方面一直磕磕绊绊。有人可以解释内存管理
我已经尝试了很多次,以非常有限的成功理解这一点。我认为自己是高于平均水平的情报,但这种东西只是躲开我,经过多次搜索和苹果文档的阅读
比方说,我有我创建一个选择器 - 这样的代码放在
UIPickerView *patientPicker = [[[UIPickerView alloc] init]retain];
//more code here
[self.view addSubView:patientPicker];
那么,我会用我的选择器做几件不同的事情。
只有按下分段控制按钮时才会出现选取器。分段控制规定使用哪个数据阵列来填充选择器。
但是,当我更改分段控制时,我发现它在旧选取器的顶部显示了一个新选取器,而不是更改当前选取器中的数据。
即分段控制是患者年龄或体重。如果选择年龄,则会出现年龄选择器,如果选择了重量,则会出现相同的重量选择器。但是,如果其中一个拾取器已经存在,那么单击备用片段不会更改数据,它只是将另一个拾取器添加到视图中。
我的问题来了,当我尝试隐藏选取器,因为旧选取器仍然在下面,我无法隐藏旧选取器。
所以当我点击一个按钮来移除选取器时,旧的选取器仍然存在于下方。
我已经试过
[patientPicker removeFromSuperView];
,但是当我试图重建我拾起我所知,病人选择器已释放???
这同样适用于
[patientPicker release];
我知道,有人能告诉我简单的回答,但我真正想要的是让我不内存管理的一个非常简单/简单化的解释不得不再问一次。
假装我7岁!
感谢
鲍勃
您需要做以下两件事之一:1)购买一本关于Objective-C/iOS编程的好书,并研究关于内存管理的章节。 2)坚持使用iOS 5/Xcode 4中的ARC(自动引用计数)环境。 – 2012-01-11 01:57:51
(在你做任何一个你需要对OO有很好的基本理解之前,很多人不能理解你可以拥有同一个类的多个不同对象,并且将值存储在一个不会让这个值神奇地出现在另一个中。) – 2012-01-11 02:00:33
@热舔:ARC支持可以从iOS 4.3或更高版本获得。 – 2012-01-11 10:34:39