Недавно скачав и установив XCode 4.3 из App Store, я обнаружил серьезную и неожиданную проблему при чтении файлов изображений (больших файлов JPEG), ранее сохраненных в пользовательских документах приложения. Вопрос в следующем:
(i) Файлы получены из фото-библиотеки пользователя, и исходное изображение UIcropped (UIImagePickerControllerOriginalImage
) правильно сохраняется в пользовательских документах. Проверка папки «Пользовательские документы» показывает, правильно ли сохранен файл изображения. При копировании этого файла в мою учетную запись создается копия, которую можно загрузить (например, в приложение предварительного просмотра или в iPhoto). Ожидаемое изображение загружается в Preview и iPhoto и может быть визуально правильным.
(ii) При попытке прочитать сохраненный файл стандартным методом
UIImage * image = [ UIImage imageWithContentsOfFile: file ]
метод (где file - полный путь к хранимому файлу), возвращаемое изображение равно nil. nil также возвращается при попытке загрузки NSData
через
NSData * data = [ NSData dataWithContentsOfFile: file options:
NSDataReadingMappedIfSafe error: & error ];
В этом случае полный объект ошибки NSError *
сообщается следующим образом:
CODE= 260, DOMAIN= NSCocoaErrorDomain,
USERINFO =
{ NSFilePath = "<User Documents>/<filename>.jpeg";
NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain
Code=2 \"The operation couldn't be completed. No such file or directory\"";
}
(iii) Изучение скопированного файла в Finder показывает, что «Вид» предыдущего записанного файла изображения теперь является «Документом», тогда как ранее это было (как и ожидалось) «Изображение JPEG». Это ЕДИНСТВЕННАЯ очевидная проблема с файлом.
(iv) Замена предыдущего записанного файла созданным извне файлом изображения JPEG С ТОЛЬКО ТО ЖЕ ИМЯ приводит к успешной загрузке файла через [UIImage imageWithContentsOfFile: file]!
НАСТОЯЩИМ СМОТРЕТЬ, ЧТОБЫ БЫТЬ ПРОБЛЕМОЙ РАЗРЕШЕНИЯ, ЧЕМ ЗАДАЧУ JPEG-ДАННЫХ. Новым в установке XCode 4.3 является Kind = "Document", заменяющий предыдущий (и работающий) Kind = "JPEG Image". МОЖЕТ ЛЮБОЙ, ПОЖАЛУЙСТА, ВКЛЮЧИТЬ СВЕТ НА ЭТО МАТЕРИ И, ЕСЛИ ВОЗМОЖНО, РЕШИТЬ РЕШЕНИЕ? Для меня этот вопрос актуален и расстраивает, так как он ломает инструмент дизайна PDF в процессе срочной разработки!
С наилучшими пожеланиями,
Отрицательная энтропия