1

ストアに掲載する最初のアプリの完成に近づいています。すべてが正常に機能し、メモリ リークはほとんど存在しません。ただし、カメラを使用している場合やカメラ ロールから画像を選択している場合を除きます。

ユーザーがカメラとロールを選択した場合....カメラは正常に動作します...写真を撮り、[使用]を選択するとクラッシュします。カメラロールも同じ。私は初心者なので、何かを台無しにしても驚かないでしょう。ヘルプ/提案は大歓迎です...コードは次のとおりです。

    -(IBAction) getPhoto:(id) sender {
    UIImagePickerController * picker = [[UIImagePickerController alloc] init];
    picker.delegate = self;

    if((UIButton *) sender == choosePhoto) {
        picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    } else {
        picker.sourceType = UIImagePickerControllerSourceTypeCamera;
    }

    [self presentModalViewController:picker animated:YES];
    //[picker release];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
    [picker dismissModalViewControllerAnimated:YES];
    theimageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    [picker release];
}
4

3 に答える 3

0

問題は、元の画像を使用しているため、1400x750(正確なサイズは不明)のようなものであるため、表示する画像ビューの画像として設定しているときにメモリが不足している可能性があります...画像ビューに表示するには、画像のサイズを320x480または480x320に変更する必要があります。これにより、問題が解決する可能性があります。

于 2010-08-17T15:51:13.350 に答える
0


[ピッカーdismissModalViewControllerAnimated:YES]を 変更します。 [自己却下ModalViewControllerAnimated:YES]に
; それはうまくいくはずです

于 2012-05-02T17:24:29.450 に答える
0

私に飛び出す唯一の問題は、それUIImagePickerControllerOriginalImageNSString定数であるため、引用符で囲みたくないということです。

theimageView.image = [info objectForKey:UIImagePickerControllerOriginalImage];

しかし、その行が失敗したとしても、クラッシュを引き起こさない可能性が高いものにのみ設定theimageView.imageされます。nilXcode コンソールで、クラッシュに関する詳細情報が少なくとも表示されるはずです。また、この SO answerのヒントも確認してください。

于 2010-08-17T15:28:00.147 に答える