繁体   English   中英

无法在Swift 3中使用闭包语法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM