0
Swift3でクロージャXcode8 beta4を使用しようとしていますが、機能しません。 Swift2.2で動作するクロージャーと同じ機能ですが、Swift3では失敗します。Swift 3でクロージャ構文を使用できません
スウィフト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){
}
同じ機能スウィフト2.2で作業していて、スウィフト3
にもSDWebImage
完了ブロックの問題に直面していません。 完了ハンドラなしでSDWebImage
を使用できますが、完了ハンドラでは失敗します。
完了ハンドラなしで動作します。
imageView.sd_setImage(with: URL(string: "imageURL"), placeholderImage: UIImage(named : "imageName"))
しかし、補完ハンドラとともに使用すると、コンパイラは指定されたメッセージに不平を言う。 ':placeholderImage:とsd_setImage(完成:)' の
あいまいな使用
imageView.sd_setImage(with: url, placeholderImage: UIImage(named: "imageName"), completed: { (image, error , cacheType , imageURL) in
})
それは変更が閉鎖構文になり、同じように見えますが、ことを見つける方法何がうまくいかないのですか?
あなたは私 'SDWebImage'のためのソリューションを与えることができますか? – technerd
私はそれが今Swift 3と互換性がないと思う。通常のSwift 3の構文はそのままでは動作しません。 Swift 3のサポートに関しては、未解決の問題もあります。https://github.com/rs/SDWebImage/issues/1627 –
Swift 3でのクロージャの一般的な使用法についての答えを正しいとマークできますか? –