0

カメラから画像をキャプチャしてボタンに設定するアプリがあります。

そのため、カメラから画像をキャプチャして使用ボタンをタップした後、[NSCFType setImage:forstate]認識されないインスタンスでアプリがクラッシュします

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
   [picker dismissModalViewControllerAnimated:YES];

   UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    UIImage *resizeImage = [image imageWithImage:image scaledToSize:CGSizeMake(320, 480)];    

   //convert the selected image to NSData
   toShowFullImage = UIImageJPEGRepresentation(resizeImage, 0.8);

    //retain it for further use 
    [toShowFullImage retain];

    //set the selected image to button

    UIImage *newimage=[image imageScaleAndCropToMaxSize:CGSizeMake(75, 75)];

    [button setImage:newimage forState:UIControlStateNormal];
}

このクラッシュはiOS6.0.1で発生し、トラップ6の中止エラーが発生します

4

2 に答える 2

0

ボタンを割り当てるかどうかを確認し、アウトレットで参照を指定するかどうかを確認してから、このボタンを解放する場所にその画像を設定すると、このタイプのエラーが発生したので、このフローメイトを確認してください。あなたのために使用する。

newimageの代わりに..たとえば、画像をボタンの背景に直接設定します。

[button setBackgroundImage:image forState:UIControlStateNormal];
于 2012-11-22T07:20:46.700 に答える
0

すでにリリースされているボタンの背景画像を設定すると問題になると思います。

この問題の考えられる方法:

  1. ビューにボタンを追加すると、[button release];
  2. 次のようなファクトリメソッドを使用してボタンを作成しましたbuttonWithType:

可能な解決策:

  1. 表示するように設定した後、リリースを呼び出さないでください。
  2. を使用してボタンを作成した場合は、ボタンを保持するだけですbuttonWithType:
  3. タグを使用して画像を設定します。

ボタンを追加するときは、次のようなタグを設定します。

button.tag = 7;
[self.view addSubview:button];

そして、次のように画像を設定します。

 [[self.view viewWithTag:7] setImage:newimage forState:UIControlStateNormal];
于 2012-11-22T08:28:34.123 に答える