swift 3.1 中的文件管理器问题
Issue with file manager in swift 3.1
我有以下代码运行良好,直到 swift 3.1 发布。
func loadImage() {
id = userPhotoModel.id
let fileManager = FileManager.default
let imagePath = (self.getDirectoryPath() as NSString).appendingPathComponent(photoName)
if fileManager.fileExists(atPath: imagePath){
let imageFromPath = resizeImage(named: (contentsOfFile: imagePath))
print("name of photo retrieved: \(photoName)")
self.userPhoto.image = imageFromPath
}else{
print("No Image")
}
}
现在,swift3.1要加成!字符串为:
let imageFromPath = resizeImage(named: (contentsOfFile: imagePath) as! String)
但是,当我 运行 应用程序时,它在这个位置崩溃,没有错误消息,如下图所示。
这是什么原因造成的?
编辑:这是 resizeImage 函数
fileprivate func resizeImage(named name: String) -> UIImage
{
var image = UIImage(named: name)
if image!.size.height > image!.size.width
{
self.userPhoto.contentMode = .scaleAspectFit
}
else
{
image = image!.resizeTo(self.userPhoto.bounds)
}
return image!
}
问题是以下行中的语法混乱:
let imageFromPath = resizeImage(named: (contentsOfFile: imagePath))
应该是:
let imageFromPath = resizeImage(named: imagePath)
不需要强制转换并且在任何 Swift 3.x.
中都正确
我有以下代码运行良好,直到 swift 3.1 发布。
func loadImage() {
id = userPhotoModel.id
let fileManager = FileManager.default
let imagePath = (self.getDirectoryPath() as NSString).appendingPathComponent(photoName)
if fileManager.fileExists(atPath: imagePath){
let imageFromPath = resizeImage(named: (contentsOfFile: imagePath))
print("name of photo retrieved: \(photoName)")
self.userPhoto.image = imageFromPath
}else{
print("No Image")
}
}
现在,swift3.1要加成!字符串为:
let imageFromPath = resizeImage(named: (contentsOfFile: imagePath) as! String)
但是,当我 运行 应用程序时,它在这个位置崩溃,没有错误消息,如下图所示。
这是什么原因造成的?
编辑:这是 resizeImage 函数
fileprivate func resizeImage(named name: String) -> UIImage
{
var image = UIImage(named: name)
if image!.size.height > image!.size.width
{
self.userPhoto.contentMode = .scaleAspectFit
}
else
{
image = image!.resizeTo(self.userPhoto.bounds)
}
return image!
}
问题是以下行中的语法混乱:
let imageFromPath = resizeImage(named: (contentsOfFile: imagePath))
应该是:
let imageFromPath = resizeImage(named: imagePath)
不需要强制转换并且在任何 Swift 3.x.
中都正确