在我的项目中包含以下代码行。但我总是得到错误。我正在使用Xcode 7.2和iOS 9。
let image: UIImage = UIImage(CGImage:imageRef, scale:originalImage.scale, orientation:originalImage.imageOrientation)!
答案 0 :(得分:0)
删除!
该方法的结果不是可选的 - 您不需要打开它。
注意:您不需要变量中的: UIImage
- Swift会为您推断出它的类型。
编辑:如果imageRef
是可选的(来自@ chewie'评论)会怎样?
您有几个选择。
1使用if let
:
if let imageRef = imageRef {
let image = UIImage(CGImage: imageRef, scale: originalImage.scale, orientation: originalImage.imageOrientation)
// Do something with image here
}
2使用guard
guard let imageRef = imageRef else {
print("Oops, no imageRef - aborting")
return
}
// Do something with image here
let image = UIImage(CGImage: imageRef, scale: originalImage.scale, orientation: originalImage.imageOrientation)
3使用地图
let image = imageRef.map {
UIImage(CGImage: $0, scale: originalImage.scale, orientation: originalImage.imageOrientation)
}
// Do something with image here, remembering that it's
// optional this time :)
选择使用哪种是你的,但这是我的经验法则。
如果你需要做什么需要一张图片,请使用guard
并提前中止,如果你没有。这通常使您的代码更易于阅读和理解。
如果您需要做的事情可以在没有图片的情况下完成,请使用if let
或map
。 if let
如果你只是想做某事然后再继续下去就很有用。如果您需要传递map
并稍后再使用它,UIImage?
非常有用。