0

カメラで撮影した写真を追加し、それを UIImages の NSMutableArray に追加するコードをいくつか書きました。

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

    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    self.description.text = [NSString stringWithFormat:@"image is %d by %d", image.size.width, image.size.height];

    //[self.imageArr addObject:image]

    //[self saveImages];
}

「self.description.text」は、iPhone でテストするときに情報を取得するために使用する UILabel です (私の macbook は古すぎて、最新の OS と Xcode のバージョンにアップグレードできません)。

イメージを imageArr に追加すると、アプリがクラッシュすることがわかりました (imageArr が nil ではないことはわかっています。説明 UILabel を使用して確認しました)。

addObject 関数と saveImages 関数をコメントアウトすると、写真を撮った後、説明に UIImage の幅が 0、高さが 1084850176 であることがわかりました。以前にこの問題が発生した人はいますか? ここ数日、アプリ内で写真を撮って保存しようとしてきましたが、この問題を解決できないようです。

編集: %d の代わりに %f を使用して、画像のサイズの問題を修正しました (idz に感謝します!)。

[self.imageArr addObject:image] 行のコメントを外すと、まだクラッシュします。クラッシュ レポートには、その行を実行したときの例外タイプは EXC_CRASH (SIGABRT) であることが示されています。これが何を意味するのかよくわかりませんが、imageArr が nil ではなく、NSMutableArray であることは確かなので、なぜそこでクラッシュし続けるのかわかりません。

4

1 に答える 1

0

通常、割り当てて初期化する必要がありますself.imageArr

それが通常、これらのエラーの原因です。また、配列の場合は、可変配列であることを確認してください。

于 2013-04-03T03:04:41.587 に答える