Iphone 循环中的内存管理
单击表项时,Iphone 循环中的内存管理,iphone,objective-c,loops,memory-leaks,Iphone,Objective C,Loops,Memory Leaks,单击表项时,UINavigationController正在推送UIViewController。出现的视图通过如下循环创建大量ui标签: for(i=0, i < 50, i++) { pointer = [[UILabel alloc] initWithFram:CGRectMake(i, 5, 5, 5)]; pointer.text = ...; ... [scrollView addSubView:pointer]; [pointer re
UINavigationController
正在推送UIViewController
。出现的视图通过如下循环创建大量ui标签
:
for(i=0, i < 50, i++)
{
pointer = [[UILabel alloc] initWithFram:CGRectMake(i, 5, 5, 5)];
pointer.text = ...;
...
[scrollView addSubView:pointer];
[pointer release];
}
for(i=0,i<50,i++)
{
指针=[[UILabel alloc]initWithFram:CGRectMake(i,5,5,5)];
pointer.text=。。。;
...
[滚动视图添加子视图:指针];
[指针释放];
}
当视图消失时,如何释放所有内存?指针“指针”只指向最后一个UILabel
,这不是一个问题吗?对于另一个ui标签
没有更多的指针了?因为之前加载了一些视图之后,视图的推送速度非常慢。您不需要手动释放所有UILabel。你已经在循环中释放它们了。因此,要正确处理内存,只需确保scrollView被正确释放。您应该将UILabel*指针设置为该循环中的局部变量。为了明确你不需要在其他地方使用指针,因为你不需要 您保留(alloc)它们,scrollView保留它们,您释放它们。当scrollview被释放时,它将释放UILabel。都是
一切都很好 好吧。。。正在释放滚动视图。。。我真是个傻瓜:)谢谢你的快速回答!