何时释放动态创建的对象

时间:2012-04-03 06:53:11

标签: iphone objective-c xcode ipad memory-management

在我的iPad App中,

我有一个从UIButton继承的自定义类。

我使用for循环动态添加主视图上的按钮。

此按钮也有标签。

我的问题是何时发布自定义类的对象。

for(NSMutableDictionary *dict  in Categories)
{

Category *category=[[Category alloc] initWithName:[dict valueForKey:@"category_name"]  identity:[[dict valueForKey:@"category_id"] intValue] imageName:nil];

category.lblimagesCount=[[UILabel alloc] initWithFrame:CGRectMake(category.frame.size.width-31,   category.frame.origin.y-42, 26, 26)];

[category addSubview:category.lblimagesCount];

[self.viewHeader addSubview:category];

[category release];
category=nil;

}

如何避免内存泄漏。 尤其是给 标签 2.分类。

在哪里写发布?

我。类别类(UIButton)具有dealloc方法,但从不调用它。

II。当我将其添加到子视图后立即将其释放时,它是否会影响我的按钮点击。

III。我应该何时发布标签。

对内存管理非常困惑。

1 个答案:

答案 0 :(得分:3)

我会回答你的问题:

<强>我。类类(UIButton)具有dealloc方法,但从不调用它。 因为它没有完全释放,请参阅问题ii。

<强> II。当我在将其添加到子视图后立即将其释放时,它是否会影响我的按钮点击。 不,因为您的子视图现在是该按钮的所有者,当您将其添加到子视图时,您和子视图都是所有者,当您释放时,该按钮现在由subView拥有。

<强> III。我应该何时发布标签。 只要您将其添加到子视图中,原因与问题ii相同。

如果你不理解,我会很乐意澄清。