Я пишу файл .jpg в свое приложение Каталог документов, например:
NSData *img = UIImageJPEGRepresentation(myUIImage, 1.0);
BOOL retValue = [img writeToFile:myFilePath atomically:YES];
Позже я загружу это изображение обратно в UIImage, используя:
UIImage *myImage = [UIImage imageWithContentsOfFile:path];
Я знаю, что это работает, потому что я могу рисовать изображение в ячейке таблицы, и это нормально. Теперь, если я пытаюсь использовать UIImageJPEGRepresentation (myImage, 1.0), отладчик выводит эти строки:
<Error>: Not a JPEG file: starts with 0xff 0xd9
<Error>: Application transferred too few scanlines
И функция возвращает nil. У кого-нибудь есть идея, почему это произойдет? Я не сделал ничего, чтобы манипулировать данными UIImage после его загрузки. Я просто предоставил UIImage для просмотра изображения в ячейке. Я устанавливаю свойства просмотра изображений таким образом, чтобы все изображения в ячейках выстраивались в линию и имели одинаковый размер, но я не думаю, что это должно иметь какое-либо отношение к возможности конвертировать UIImage в NSData.