0

我正在尝试将闭包 Xcode8 beta4 与 Swift3 一起使用,但它不起作用。与闭包相同的功能在 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

        })

看起来,更改将在闭包语法中,但如何发现出了什么问题?

4

1 回答 1

1

UIView 动画语法在 Swift 3 中更改为:

UIView.animate(withDuration: 0.5, animations: {

}, completion: { (Bool) in

})

来电greetingMessageWithDate

greetingMessageWithDate(date: Date(), message: "") { (greetingMessage: String, code: Int) in

}
于 2016-08-15T21:27:46.027 回答