2012-03-05 61 views
1

最近从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设计工具!

最良好的祝愿, 负熵

回答

0

你可以调试和控制台“PO文件”?我之前没有看到权限问题,所以我怀疑路径。此外,我们还看到了区分大小写的问题(iOS区分大小写,而您的模拟器可能不会)。需要查看完整的path变量内容。