最近从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设计工具!祝福, 负熵
答案 0 :(得分:0)
你可以从控制台调试和“po文件”吗?我之前没有看到过许可问题,所以我怀疑这条道路。此外,我们已经看到了区分大小写的问题(iOS是区分大小写的,而您的模拟器可能不是)。需要查看完整的path
变量内容。