方法中的内存问题

时间:2011-08-23 07:27:19

标签: iphone objective-c

我在泄漏中运行应用程序我发现20%的内存问题。

-(void)createLabel{

iconTitle=[[UICustomLable alloc]initWithMenuFrame:CGRectMake(10, 35, 80, 60) text:TAB_LANDSCAPE_WALL];
    [myView addSubview:wbgImg];
    [myView addSubview:iconTitle];
    iconTitle=nil;


    iconTitle=[[UICustomLable alloc]initWithMenuFrame:CGRectMake(10, 35, 80, 60) text:TAB_WALL];
    [myView addSubview:wbgImg];
    [myView addSubview:iconTitle];
    iconTitle=nil;
}

即使我也发布它

-(void)createLabel{

iconTitle=[[UICustomLable alloc]initWithMenuFrame:CGRectMake(10, 35, 80, 60) text:TAB_LANDSCAPE_WALL];
    [myView addSubview:wbgImg];
    [myView addSubview:iconTitle];
        [iconTitle release]; 
    iconTitle=nil;


    iconTitle=[[UICustomLable alloc]initWithMenuFrame:CGRectMake(10, 35, 80, 60) text:TAB_WALL];
    [myView addSubview:wbgImg];
    [myView addSubview:iconTitle];
    [iconTitle release]; 
        iconTitle=nil;
}

我在viewdidload中调用此方法

[self createLabel];

@All

任何人都可以帮我解决这个问题。

3 个答案:

答案 0 :(得分:0)

当您致电allocinitcopynew时,您应该始终发布对象。

使用analyze时可能会发现内存泄漏。转到产品 - >分析

答案 1 :(得分:0)

检查您的UICustomLable类是否包含内存泄漏,并将第二个解决方案与release关键字一起使用。同时从设备/模拟器中删除应用程序并清理项目(cmd + shift + k),然后重建它并再次尝试。 :)

答案 2 :(得分:0)

如果您的UICustomLable没有内存泄漏,那么您似乎在init方法中为“wbgImg”分配内存。确保你以dealloc发布它。

在iOS 5.0中有一项名为ARC(自动参考计数)的新技术,基本上你将来不必担心这个问题。