我正在为我的应用创建一个自定义网格类型的View。我在他们上面放了许多子视图。我有必要根据用户的交互和新数据到达时使用新的视图集重新加载Gird。
我为子视图分配内存:
while(index < count)
CustomGridTile *view = [[CustomGridTile alloc] initWithFrame:frame];
[self addSubView:view];
[view release];
}
当我想刷新网格时,我会从超级视图中删除所有子视图并创建一组新的网格图块(子视图),添加到自定义网格视图并释放它们。
我做得对吗?这会给我带来与记忆相关的问题吗?
答案 0 :(得分:2)
只要您删除子视图,它就应该释放内存。
说明:
当您分配视图CustomGridTile时,其保留计数变为1.当您将其作为子视图添加时,其保留计数将变为2.当您释放时,保留计数变为1.最后,当您删除子视图时,其保留计数将变为零,应该被释放。
答案 1 :(得分:0)
发布视图可能会带来一些问题 - 我建议尝试对它们进行自动释放或者沿着这些方向进行自动释放
否则我会做的是当你从superview发布它时将它删除,但是在你将它作为子视图添加后释放已经给我带来麻烦了