[英]Not able to use closure syntax in Swift 3
我正在尝试对Swift3使用闭包Xcode8 beta4,但是它不起作用。 与在Swift2.2中运行的闭包功能相同,但在Swift3中失败。
斯威夫特2.2
UIView.animateWithDuration(0.5, animations: {
self.viewForInstagramLoginWebView.frame = CGRectMake(x, y,self.viewForInstagramLoginWebView.frame.size.width , self.viewForInstagramLoginWebView.frame.size.height)
}) { (finished) in
SVProgressHUD.dismiss()
}
但是相同的语法不适用于Swift3。
也可以尝试使用闭包创建函数。
func greetingMessageWithDate(date : NSDate, message :String, successHandler : (greetingMessage : String, code : Int ) -> Void){
}
在Swift 2.2中可以使用相同的功能,但在Swift 3中不能使用
SDWebImage
完成块也面临问题。 我可以在没有完成处理程序的情况下使用SDWebImage
,但是在完成处理程序的情况下它将失败。
无需完成处理程序即可工作。
imageView.sd_setImage(with: URL(string: "imageURL"), placeholderImage: UIImage(named : "imageName"))
但是当与完成处理程序一起使用时,编译器会抱怨给定的消息。
sd_setImage(with:placeholderImage:completed :)的歧义用法
imageView.sd_setImage(with: url, placeholderImage: UIImage(named: "imageName"), completed: { (image, error , cacheType , imageURL) in
})
看起来,更改将采用闭包语法,但是如何找到问题所在?
UIView动画语法在Swift 3中更改为:
UIView.animate(withDuration: 0.5, animations: {
}, completion: { (Bool) in
})
调用greetingMessageWithDate
:
greetingMessageWithDate(date: Date(), message: "") { (greetingMessage: String, code: Int) in
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.