Ios dataWithContentsOfFile返回null
imageData为空Ios dataWithContentsOfFile返回null,ios,nsdata,Ios,Nsdata,imageData为空 NSString *path = dict[@"fileURL"]; NSData *imageData = [NSData dataWithContentsOfFile:path]; 我下载了设备容器,图像确实存在。 怎么了?检索您的文件失败。使用-dataWithContentsOfFile:options:error:查找失败的原因 dict[@"fileURL"] = /var/mobile/Containers/Data/Application/0906AB5
NSString *path = dict[@"fileURL"];
NSData *imageData = [NSData dataWithContentsOfFile:path];
我下载了设备容器,图像确实存在。
怎么了?检索您的文件失败。使用
-dataWithContentsOfFile:options:error:
查找失败的原因
dict[@"fileURL"] =
/var/mobile/Containers/Data/Application/0906AB53-CE1F-45EF-8E00-9D0B7C98956C/Documents/ccc/image/1446625127.png
我认为您应该使用
[NSFileManager defaultManager]
在应用程序存储中存储和获取映像,而不是写入静态路径
使用模拟器静态路径是可以的,但在真实环境中,您应该需要实际路径。因此,[NSFileManager defaultManager]
将帮助您
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
}
在filepath
中,您只需要传递文件夹和文件名。不是像你这样的完整路径
即
注意:
这不是一个实际的答案。这将帮助您将图像管理到应用程序存储中。如何获取文件URL?动态创建路径,不要保存整个路径,而是保存相对路径。为什么路径是动态的?阅读:和您好。您试图获取的图像存储在您的应用程序存储中?原因是此路径与我保存的路径不同,因此旧路径中不存在文件。在设备/Simuta中,或者如果您每次运行一次该路径,则保存相关路径不保存整个路径路径路径是在安装时确定的。每次在模拟器/设备中运行应用程序时,都会将其删除并重新安装。因此,路径不同。所以你不用担心这个。@Anbu.Karthik我还是有点困惑。这是否意味着在使用Xcode模拟器时,我们无法从先前保存到数据库的路径重新加载图像?使用“NSData*data=[NSData dataWithContentsOfFile:photo1Path];”时,我也会得到“null”数据。
if([[NSFileManager defaultManager] fileExistsAtPath:filepath)
{
NSData *data = [[NSFileManager defaultManager] contentsAtPath:filepath];
}
else
{
NSLog(@"File not exits");
}
filepath = "Documents/ccc/image/1446625127.png";