0

initメソッドでボタンを作成し、2つのUiimageオブジェクトを作成し、ブール値を作成しました

      if(!isHint)
      {
          [hintBtn setImage:hintBtnImage forState:UIControlStateNormal];
      }
      else
      {
          [hintBtn setImage:hintBtnImagex forState:UIControlStateNormal]; 
      }   
      hintBtn =[[UIButton alloc]initWithFrame:CGRectMake(794, 144, hintBtnImage.size.width, hintBtnImage.size.height)]; 
      [hintBtn setImage:hintBtnImage forState:UIControlStateNormal];
      [hintBtn addTarget:self action:@selector(showHint) forControlEvents:UIControlEventTouchUpInside];

ユーザーがテーブルビューセルをタップするたびに、ブール変数を変更し、以下のコードのように画像を設定します。

    if(wrongx==1)
    {
        NSLog(@"the wrong x is %i",wrongx);    
        isHint = NO;
        [hintBtn setImage:hintBtnImage forState:UIControlStateNormal];
    }  

しかし、最初にアプリケーションをタップすると、それは機能していますが、2回目は以下のエラーが発生します

[UIImage retain]: message sent to deallocated instance

Plzが私の投稿に返信します。よろしくお願いします

4

1 に答える 1

0

「hintBtnImage」オブジェクトを割り当てた場所。割り当てずに「hintBtnImage」にアクセスしようとしていると思います。

hintBtn =[[UIButton alloc]initWithFrame:CGRectMake(794, 144, hintBtnImage.size.width, hintBtnImage.size.height)];

小さなコードの変更が必要です。問題の解決には関係ありません。上記の行は次のようになります

hintBtn =[[UIButton alloc]initWithFrame:CGRectMake(794, 144, hintBtnImage.size.width, hintBtnImage.size.height)];
      if(!isHint)
      {
          [hintBtn setImage:hintBtnImage forState:UIControlStateNormal];
      }
      else
      {
          [hintBtn setImage:hintBtnImagex forState:UIControlStateNormal]; 
      }   
于 2012-05-30T06:10:11.607 に答える