Я написал некоторый код, чтобы добавить фотографию, сделанную камерой, и добавить ее в NSMutableArray UIImages.
- (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» — это UILabel, который я просто использую для получения информации при тестировании на своем iPhone (мой macbook слишком стар для обновления до последней ОС и версии Xcode).
Я обнаружил, что когда я добавляю изображение в свой imageArr, приложение вылетает (я знаю, что imageArr не равен нулю, я использовал описание UILabel для проверки).
Если я закомментирую функции addObject и saveImages, я обнаружил, что после того, как я сделал снимок, в описании указано, что UIImage имеет ширину 0 и высоту 1084850176. Кто-нибудь сталкивался с этой проблемой раньше? Я пытаюсь делать и сохранять фотографии в приложении уже несколько дней, но не могу решить эту проблему.
EDIT: я решил проблему с размерами изображения, используя %f вместо %d (спасибо idz!).
Он все еще падает, когда я раскомментирую строку [self.imageArr addObject:image]. В отчете о сбое говорится, что тип исключения EXC_CRASH (SIGABRT) при запуске этой строки. Я действительно не знаю, что это значит, но я уверен, что imageArr не равен нулю, а является NSMutableArray, поэтому я не понимаю, почему он продолжает падать там.
image.size.width
иimage.size.height
— этоCGFloat
, поэтому для их печати следует использовать%f
или%g
. Также вы должны добавить больше информации о том, что вы подразумеваете под сбоем... Какое сообщение вы видите? - person idz   schedule 03.04.2013_imageArr = [[NSMutableArray alloc] init];
У меня также есть функция loadImages, которую я вызываю после этого, которая предположительно загружает сохраненные изображения (конечно, до сих пор их не было). В нем у меня естьNSMutableArray *tempArr = [[NSMutableArray alloc] init];
, который должен быть заполнен загруженными изображениями, а затем я делаюself.imageArr = [tempArr mutableCopy];
Это единственные места, где я выделяю/инициирую imageArr. - person max   schedule 03.04.2013