最近从App Store下载并安装XCode 4.3后,发现严重且意外的问题,此时读取先前存储在应用程序中的图像文件(大型JPEG文件)User文档。问题如下:文件访问读取先前写入NSDocumentDirectory的图像FAILS
(i)从用户的照片库和UIcropped原始图像(UIImagePickerControllerOriginalImage
)派生的文件被正确存储到用户文档。检查用户文档文件夹显示正确存储的图像文件。将该文件复制到我的用户帐户可创建一个副本,可将其加载(例如)到预览应用程序或iPhoto中。预期图像由Preview和iPhoto加载,可以看作是视觉上正确的。
(ii)在试图读取所存储的文件的标准方法
UIImage * image = [ UIImage imageWithContentsOfFile: file ]
方法(其中,文件是存储的文件的全路径名)中的图像返回为零。零也经由
NSData * data = [ NSData dataWithContentsOfFile: file options:
NSDataReadingMappedIfSafe error: & error ];
返回上尝试进行NSData
负载在这种情况下的完整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\"";
}
(ⅲ)检查在Finder中被复制的文件显示“种类“; y书面图像文件现在是”文档“以前它是(如预期的)”JPEG图像“。这是该文件唯一明显的问题。
(iv)用外部创建的JPEG图像文件替换之前写入的文件具有完全相同的名称导致通过[UIImage imageWithContentsOfFile:file]成功加载文件!
这样看来,这是一个与JPEG数据问题相关的许可问题。使用XCode 4.3安装的新功能是用Kind =“Document”代替以前的(和工作)Kind =“JPEG Image”。任何人都可以在这个问题上投入大量精力,并且如果可能的话提出解决方案?这件事是迫切的&令我沮丧,因为它打破了在紧急开发下的PDF设计工具!
最良好的祝愿, 负熵