dataWithContentsOfFile返回null

时间:2015-11-04 08:55:54

标签: ios nsdata

NSString *path = dict[@"fileURL"];
NSData *imageData = [NSData dataWithContentsOfFile:path];

imageData为空

dict[@"fileURL"] =
/var/mobile/Containers/Data/Application/0906AB53-CE1F-45EF-8E00-9D0B7C98956C/Documents/ccc/image/1446625127.png

我下载设备容器,图像确实存在。 怎么了?

2 个答案:

答案 0 :(得分:1)

无法检索您的文件。使用-dataWithContentsOfFile:options:error:查找失败原因。

NSError* error = nil;
NSString *path = dict[@"fileURL"];
NSData *data = [NSData dataWithContentsOfFile:path options: 0 error: &error];

if (data == nil)
{
   NSLog(@"Failed to read file, error %@", error);
}
else
{
    // parse the value
}

答案 1 :(得分:0)

我应该使用[NSFileManager defaultManager]来存储和获取应用程序存储中的图像,而不是编写静态路径。

静态路径可以使用模拟器,但在真实环境中,您应该需要具有实际路径。因此[NSFileManager defaultManager]会对您有所帮助。

if([[NSFileManager defaultManager] fileExistsAtPath:filepath)
{
   NSData *data = [[NSFileManager defaultManager] contentsAtPath:filepath];
}
else
{
   NSLog(@"File not exits");
}

filepath中,您只需要传递文件夹和文件名。没有像你这样的完整路径。

IE。

filepath = "Documents/ccc/image/1446625127.png";

注意: 这不是一个真正的答案。这有助于您将图像管理到应用程序存储中。