Later, I researched it clearly, and it was actually just the reason for the xcode display. You can already see by expanding (null) that _timer is already an object of NSCFTimer. (null) and nil here are completely different things.
Generally speaking, for the selector parameter, the method passed in should take an NSTimer type parameter, that is, the subject's animateOneFrame method should take this parameter, so the passed in should be @selector(animateOneFrame:).
Later, I researched it clearly, and it was actually just the reason for the xcode display. You can already see by expanding (null) that _timer is already an object of NSCFTimer. (null) and nil here are completely different things.
Note that you have cleared
_timer
Generally speaking, for the selector parameter, the method passed in should take an NSTimer type parameter, that is, the subject's animateOneFrame method should take this parameter, so the passed in should be
@selector(animateOneFrame:)
.