2011-08-23 11 views
0

私はリークのアプリケーションを実行していますが、メモリの問題で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; 
} 

それを解放し、私はいずれかがこの問題で私を助けることができる

@All

[self createLabel]; 

のviewDidLoadで、このメソッドを呼び出しています。

答えて

0

allocinitcopyまたはnewを呼び出すときは、常にオブジェクトを解放する必要があります。

analyzeを使用すると、メモリリークが発生することがあります。製品に移動 - >分析します。

0

UICustomLableクラスにメモリリークが含まれていないことを確認し、releaseキーワードの2番目のソリューションを使用してください。また、デバイス/シミュレータからアプリケーションを削除して、プロジェクトをクリーンアップし(cmd + shift + k)、再ビルドしてもう一度やり直してください。 :)

0

あなたのUICustomLableにメモリリークがない場合は、initメソッドの "wbgImg"にメモリを割り当てるようです。 deallocで必ずリリースしてください。

iOS 5.0にはARC(Automatic Reference Counting)と呼ばれる新技術がありますが、基本的にこれについては今後心配する必要はありません。