我正在为我的应用程序创建一个自定义网格类的视图。我在上面放了很多子视图。我有必要根据用户的交互和新数据到达时,使用新的视图集重新加载Gird。
我为我的子视图分配内存,如下所示:
while(index < count)
CustomGridTile *view = [[CustomGridTile alloc] initWithFrame:frame];
[self addSubView:view];
[view release];
}当我想刷新我的网格时,我从它们的superViews中删除了所有的子视图,并创建了一组新的网格瓦片(子视图),添加到自定义网格视图中并释放它们。
我做的事情正确吗?这会给我带来内存相关的问题吗?
发布于 2011-11-25 14:32:15
只要你删除了子视图,它就应该释放内存。
解释:
当您分配视图CustomGridTile时,其保留计数将变为1。当您将其添加为子视图时,其保留计数将变为2。当您释放视图时,保留计数将变为1。最后,当您删除子视图时,其保留计数将变为零,应该释放。
发布于 2011-11-25 14:30:05
发布视图可能会带来一些问题-我建议尝试在它们上进行自动发布或类似的事情
否则我会做的是,当你从superview中删除它时,也会释放它,但在你将它添加为子视图后释放它,这在过去给我带来了麻烦
https://stackoverflow.com/questions/8265470
复制相似问题