FILE-ACCESS读取先前写入NSDocumentDirectory FAILS的图像

时间:2012-03-05 12:05:16

标签: ios file-io ios5

最近从App Store下载并安装了XCode 4.3,我在读取以前存储在应用程序用户文档中的图像文件(大型JPEG文件)时发现了严重且意外的问题。问题如下:

(i)文件来自用户的照片库,并且UIcropped原始图像(UIImagePickerControllerOriginalImage)被正确存储到用户文档。检查用户文档文件夹显示正确存储的图像文件。将此文件复制到我的用户帐户会创建一个可以加载(例如)到预览应用程序或iPhoto中的副本。预期图像由预览和iPhoto加载,可以看作是视觉上正确的。

(ii)尝试使用标准方法

读取存储的文件
UIImage * image = [ UIImage imageWithContentsOfFile: file ] 

方法(其中file是存储文件的完整路径名)返回的图像为nil。尝试通过

加载NSData时也会返回nil
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中检查复制的文件显示&#34;种类&#34;现在写的图像文件是#34;文件&#34;以前是(如预期的那样)&#34; JPEG Image&#34;。这是该文件唯一明显的问题。

(iv)使用外部创建的JPEG图像文件替换先前写入的文件,同时使用相同的名称,通过[UIImage imageWithContentsOfFile:file]成功加载文件!

因此,这看起来是一个允许的问题,而不是JPEG数据问题。 XCode 4.3安装的新功能是Kind =&#34; Document&#34;替换之前(和工作)Kind =&#34; JPEG Image&#34;。请问任何人请注意这个问题,如果可能建议解决方案?这件事很紧急。令我感到沮丧,因为它在紧急开发下打破了PDF设计工具!

祝福,  负熵

1 个答案:

答案 0 :(得分:0)

你可以从控制台调试和“po文件”吗?我之前没有看到过许可问题,所以我怀疑这条道路。此外,我们已经看到了区分大小写的问题(iOS是区分大小写的,而您的模拟器可能不是)。需要查看完整的path变量内容。