工作生活

Swift开发---UIImage和路径互相转化

2019-07-03  本文已影响0人  闲云悠鹤蝶恋舞
1、获取沙盒路径的方法:
方法一:
let path = NSHomeDirectory() + "/Documents/test.png"
方法二:
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! + "/test.png"
2、将UIImage转化为图片路径(即将图片存储到指定的路径中):
// 将图片写入到指定的路径中
// "/var/mobile/Containers/Data/Application/FD6546AA-2DFC-4003-BFF0-0B302630A789/Documents/test.png"
let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! + "/test.png"
do {
    try img?.pngData()?.write(to: URL(fileURLWithPath: path))
}catch {
            
}
3、根据图片路径来获取图片:
// 根据指定的路径,来读取图片
// path:"/var/mobile/Containers/Data/Application/FD6546AA-2DFC-4003-BFF0-0B302630A789/Documents/test.png"
// 注:切记此处不能直接用保存的路径,因为NSHomeDirectory()每次运行App,得到的都是不一样的!!!
let path = NSHomeDirectory() + "/Documents/test.png"
let getImg = UIImage(contentsOfFile: path)

注意:

需要注意的是documents这个路径随着app的每次Run而改变,所以我们不能将这个绝对路径和后面自定义的相对路径拼接存放到NSUserDefaults中已方便后面的存取,我们应该将自定义的相对路径保存到NSUserDefaults中,需要获取这个路径下的文件时,使用上面方法一或方法二获取到documents,再与保存好的相对路径进行拼接来完成自己需要的功能。
如:NSHomeDirectory() + "/Documents/test.png",这样就可以解决每次路径都发生变化取不到对应值的问题了!!!

上一篇下一篇

猜你喜欢

热点阅读