Судя по документации Apple CAAction, единственным встроенным классом, который реализует протокол CAAction, является CAAnimation (и его подклассы, конечно). Компилятор ожидает возвращаемое значение, которое реализует CAAction, поэтому да, возвращение [NSNull null] не будет работать. Вам действительно нужно использовать этот метод делегата, в отличие от удаления анимации со слоя, используя [layer removeAllAnimations]
или [layer removeAnimationForKey:]
?
Это кажется расточительным, но если вам абсолютно необходимо использовать метод делегата, возможно, вы могли бы вернуть «пустой» объект анимации:
return [CAAnimation animation];
Кроме того, вам нужно отключить эту анимацию навсегда или только в определенных обстоятельствах? Если вам не нужно постоянно переопределять анимацию, вы можете использовать CATransaction, чтобы отключить анимацию для отдельных вызовов методов, как описано здесь в Core Animation Programming Guide .