概要
Kingfisher が 6 -> 7 にバージョンアップしてみたら setImage の互換性がなくなりタイトルのエラーが出たので対応してみました
環境
- macOS 11.6.2
- Xcode 13.2.1
- Kingfisher 7.1.2 (was 6.3.0)
元のコード
completionHandler の返り値を使ってエラーかどうかの判定などを行う感じでした
imageView.kf.setImage(with: url,
completionHandler: {
(image, error, cacheType, imageURL) in
imageView.image = image
})
修正後のコード
completionHandler の帰り値は result のみになっておりこの結果を元に更に成功 or 失敗で分岐させて処理を書くような感じになっています
これまで使っていた image は value.image という感じで参照することができます
imageView.kf.setImage(with: url,
completionHandler: {
result in
switch result {
case .success(let value):
imageView.image = value.image
case .failure(_):
print("failure")
}
})
最後に
外部のライブラリを使っているとバージョンアップの際に非互換が発生することがあるのでこういった対応はどうしてもやらないといけなくなります
0 件のコメント:
コメントを投稿