カメラで撮影した写真を追加し、それを 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 であることは確かなので、なぜそこでクラッシュし続けるのかわかりません。