0
我是Objective-C的新手,目前正在开发一个小应用程序。removeFromSuperview和内存管理
我有一些内存管理问题,想问这个问题。我有一个按钮,我正在改变其外观:
for (UIView *subview in button.subviews)
{
if (![subview isKindOfClass:[UIImageView class]]) // don't remove UIImageView, otherwise it will not be able to set background
{
[subview removeFromSuperview];
}
}
[button setBackgroundImage: [[imageArray objectAtIndex:itemNumber] forState:UIControlStateNormal];
/*
creating myView and myLabel here
*/
[button addSubview:myView];
[button addSubview:myLabel];
[myLabel release];
[myView release];
该代码实际上更复杂,但没有任何泄漏。尽管如此,每当我这样做时,分配的对象和已用内存的数量仍在不断增长。我怎么解决这个问题?
非常感谢你
看起来像你的问题是与创建的标签。剩下的其实看起来不错... – 2010-08-17 13:46:17
有什么问题可以在那里?我在代码中创建标签,从数组中为它分配一些文本(不要为它创建任何对象),然后释放标签。我认为[子视图removeFromSuperview]运行时将这些数据保存在内存中,我无法做任何事情(((( – Burjua 2010-08-17 14:01:12