¿Configura el valor del delegado CABasicAnimation en Swift 3?

Estoy recibiendo el siguiente error

¿No se puede asignar un valor del tipo 'StarButton' para escribir 'CAAnimationDelegate?'

en la última línea de este bloque 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 es una class personalizada de UIButton. Esto no fue un problema en las versiones anteriores de Swift … ¿Alguna sugerencia sobre una solución?

ACTUALIZAR

Aquí hay un enlace descargable al file fuente de la class StarButton para get la mejor reference:

https://www.dropbox.com/s/gvc2sky05f4p3au/StarButton.swift?dl=0

Como mencionó @Doc en los comentarios anteriores, la solución es replace

 class StarButton: UIButton { 

con

 class StarButton: UIButton, CAAnimationDelegate { 

Parece que el protocolo CAAnimationDelegate ya no está implicado y debe especificarse explícitamente.