我收到以下错误
无法将“StarButton”类型的值指定为键入 'CAAnimationDelegate?'
在这个CABasicAnimation块的最后一行:
let fillCircle = CABasicAnimation(keyPath: "opacity")
fillCircle.toValue = 0
fillCircle.duration = 0.3
fillCircle.setValue(notFavoriteKey, forKey: starKey)
fillCircle.delegate = self // this is where the error is thrown
self
是一个自定义的UIButton类。这在Swift的早期版本中不是问题...对解决方案的任何建议?
更新
以下是StarButton类源文件的可下载链接,以供最佳参考:
https://www.dropbox.com/s/gvc2sky05f4p3au/StarButton.swift?dl=0
答案 0 :(得分:10)
正如上面评论中提到的@Doc,解决方案是替换
class StarButton: UIButton {
带
class StarButton: UIButton, CAAnimationDelegate {
似乎不再暗示CAAnimationDelegate协议,必须明确指定。