Настройка проблемы CABasicAnimation делегат в Swift 3?

Я получаю следующую ошибку

Невозможно присвоить значение типа "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

Ответ 1

Как упоминалось в комментариях к @Doc, решение заключается в замене

class StarButton: UIButton { 

с

class StarButton: UIButton, CAAnimationDelegate {

Казалось бы, протокол CAAnimationDelegate больше не подразумевается и должен быть указан явно.