【发布时间】:2016-03-31 20:14:24
【问题描述】:
这是我的保存方法:
-(NSString *)saveImage:(UIImage *)image
{
NSInteger RandomIndex = arc4random() % 1000;
NSString *randomImageName =[NSString stringWithFormat:@"Image%i.png",RandomIndex];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:randomImageName];
if ([[NSFileManager defaultManager] fileExistsAtPath:savedImagePath]) {
[[NSFileManager defaultManager] removeItemAtPath:savedImagePath error:nil];
NSLog(@"file removed from path");
}
NSLog(@"Saved Image Path : %@",savedImagePath);
NSData* imageData = UIImagePNGRepresentation (image);
[imageData writeToFile:savedImagePath atomically:YES];
self.teamLogo = savedImagePath;
return savedImagePath;
}
我尝试加载图像并进行控制:
NSData *myData = [NSData dataWithContentsOfFile:self.team.logo];
UIImage *selectedImage = [UIImage imageWithData:myData];
self.team.logo 来自 DB。我把绳子放在底座上。在调试模式下,我得到了这个字符串:
/var/mobile/Containers/Data/Application/7CD69EC9-9C20-48EE-B611-FC2353BC31B0/Documents/Image364.png
而 myData 仍然为零。你知道为什么吗?
【问题讨论】:
-
那里有文件吗?是否包含数据?
-
是的。我下载了容器,里面是 Image364.png 文件,我可以打开它。看起来不错
-
self.team.logo是在“重新编译”后检索到的吗?你谈论“DB”,所以我的猜测是路径改变了。您应该只保留 Documents/ 之后的内容,然后使用NSDocumentDirectory的东西再次从那里重建它。比如保存两张图片“重新编译”,对比一下/Application/和/Documents/,你就明白了。 -
我应该这样做: NSString *string = [[savedImagePath componentsSeparatedByString:@"Documents/"] objectAtIndex:1]; self.teamLogo = 字符串;只是子串,只取 Image364.png 或者我不明白你
标签: ios objective-c uiimage nsdate