我正在尝试将UIImage编码为base64字符串。我的代码是这样的:
@IBOutlet weak var photoImageView: UIImageView!
let image : UIImage = UIImage(named:"photoImageView")!
let imageData:NSData = UIImagePNGRepresentation(image)!
let strBase64:String = imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
问题是我遇到了这样的错误:“致命错误:在打开可选值时意外发现nil”
我做错了什么?
答案 0 :(得分:0)
普拉萨德的评论可能是您遇到的问题。
对于任何返回选项的函数,我通常使用if - let
语法或防护来确保我不会意外打开nil。
if let image = UIImage(named:"photoImageView") {
if let imageData = UIImagePNGRepresentation(image) {
// swift 2
// imageData.base64EncodedStringWithOptions(.Encoding64CharacterLineLength)
// swift 3
let strBase64:String = imageData.base64EncodedString(options: [.lineLength64Characters])
} else {
print("can't get PNG representation")
}
} else {
print("can't find photoImageView image file")
}
答案 1 :(得分:0)
@Enix你的评论成功了。解决我的问题就是这一行
let image = photoImageView.image
正如您所指出的,UIImage是使用图像资源初始化的,而不是使用图像视图