所以我想要做的是如果image1
与image2
发生冲突,我想从屏幕上移除image1
(不只是隐藏它,而是删除它),方式是应用程序不会崩溃或使用很多内存。
我认为这与release
有关,但我不确定。我该怎么办呢?
答案 0 :(得分:3)
从superview中删除它
[image1 removeFromSuperview];
编辑:
如果你有一个指向image1的指针,你可能刚刚将它添加到superview并且还没有发布它。因此,如果是这种情况并避免任何泄漏,只需在从superview中删除它时将其释放。
[image1 removeFromSuperview];
[image1 release], image1 = nil;
答案 1 :(得分:1)
只需将其从超级视图中删除:
[image1 removeFromSuperview];
如果你已经正确管理了你的记忆,那么你现在不需要释放它。以下是几种情况:
您的班级不拥有对image1
的引用(即它不是属性)。因此,当您创建{{1}时并将其添加到您的视图中,您确保自动发布它。因此,该观点拥有自己的参考;当从该视图中删除它时,视图将释放它。
您的班级 拥有对image1
的引用(即属性)。在image1
中,您已发布根据Objective-C内存管理习惯用户-dealloc
,因此当您从超级视图中删除它时, 仍然 不需要执行内存管理。< / p>