2011-11-16 1 views
0

卿、iphoneは4つのボタンを作成したが、私はその正しいか間違っ 2.IはviewDidUnloadをリリースしている唯一の時間をリリースしてきた私はviewDidUnloadでのplayButtonを解放し、deallocを 1.Iいる

- (void)viewDidLoad{ 
for (int i = 1; i <= 4; i++) 
{ 
    playButton=[[UIButton alloc]initWithFrame:CGRectMake(curLocX,1.0,45,kScrollObjHeight)]; 
    [playButton setBackgroundImage:[UIImage imageNamed:@"Play.png"] forState:UIControlStateNormal]; 
    [playButton addTarget:self action:@selector(playClicked) forControlEvents:UIControlEventTouchUpInside]; 
    curLocX+=100; 
    }} 

を解放uiButtonその右またはあなたの貴重な提案 Suresh.M

答えて

2

はい、オブジェクトが4回割り当てられている場合は、同じ数のカウントで解放する必要があります。

btwここで何をしようとしているのか分かりません。ループの最後にplayButtonは最後のオブジェクトへの参照しか持たず、どのビューにもplayButtonをサブビューとして追加していません。とにかく、allocとuser buttonWithTypeメソッドの使用を避けることができます。このメソッド自体は、UIButtonオブジェクトのallocとreleaseを処理するので、リリースコールについて心配する必要はありません。あなたの貴重な返信用

- (void)viewDidLoad{ 
for (int i = 1; i <= 4; i++) 
{ 
    UIButton *playButton = [UIButton buttonWithType: UIButtonTypeCustom]; 
    playButton.frame = CGRectMake(curLocX,1.0,45,kScrollObjHeight); 
    [playButton setBackgroundImage:[UIImage imageNamed:@"Play.png"] forState:UIControlStateNormal]; 
    [playButton addTarget:self action:@selector(playClicked) forControlEvents:UIControlEventTouchUpInside]; 
    curLocX+=100; 
    [self.view addSubview: playButton]; //you might have missed this statement 

}}

+0

感謝。それ自身の前に私はサブビューを追加しました。問題はallocだけです。 – suresh

0

の間違った 事前のおかげで、あなたがオブジェクトに対して呼び出されるばかりDUBBLEリリースを避けるために、場所(viewDidUnload/deallocを)の少なくとも一つからあなたのボタンのリリースを削除する必要がDEALLOC。

オブジェクトを(あなたのケースボタンの中に)作成し、それらを一度にすべて解放するのは問題ありません。

0

のループ自体のボタンを解放する必要があります。

for (int i = 1; i <= 4; i++) 
    { 
     playButton=[[UIButton alloc]initWithFrame:CGRectMake(curLocX,1.0,45,kScrollObjHeight)]; 
     [playButton setBackgroundImage:[UIImage imageNamed:@"Play.png"] forState:UIControlStateNormal]; 
     [playButton addTarget:self action:@selector(playClicked) forControlEvents:UIControlEventTouchUpInside]; 
     curLocX+=100; 
     [playButton release]; 
     } 

注: あなたは「n」のオブジェクトを割り当てられた時間は、オブジェクトの「n」回を解放する必要がある場合。

関連する問題