我的错误陈述是:
在'保护条件'中声明的变量在其正文中不可用
我的代码是:
extension ViewController {
func uploadImage(image: UIImage, progress: (percent: Float) -> Void,
completion: (tags: [String], colors: [PhotoColor]) -> Void) {
guard let imageData = UIImageJPEGRepresentation(image, 0.5) else {
Alamofire.upload(
.POST,
"http://api.imagga.com/v1/content",
headers: ["Authorization" : "Basic xxx"],
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(data: imageData, name: "imagefile",
fileName: "image.jpg", mimeType: "image/jpeg")
}
以上是该计划的一部分。
该行中出现的错误包含“data:imageData”
提前致谢!
答案 0 :(得分:3)
考虑这个后卫示例:
guard let variable = optionalVariable else { return }
// Variable is safe to use here
这个如果示例:
if let variable = optionalVariable {
// Variable is safe to use here
}
在你的情况下,你将这两个概念混合在一起。您使用后卫作为 if 语句。您可以将保护更改为if,或将代码移到else块之外。
后卫声明可能有点令人困惑!考虑它的用法,如循环内的 continue 语句。