According to the docs, the way to repeat a CABasicAnimation forever is to set its repeatCount
to HUGE_VALF
.
But in Swift, HUGE_VALF
causes a compile error. Swift doesn't seem to know about the standard library (or wherever this constant resides).
What do I do now?
The current documentation for the
repeatCount
property ofCAMediaTiming
states:And that compiles without problems:
The reason that
HUGE_VALF
is not imported into Swift is that it is defined as a "non-trivial" macro in<math.h>
:I use the "HUGE" value. it is a build_in readonly var;
Set the
repeatCount
toFloat.infinity
. This compiles and works.In all probability,
HUGE_VALF
was a legacy value in any case.Still, it's a bit of a surprise that these numeric constant names are not seen by Swift. I did try importing
<stdlib.h>
in the bridging header but it didn't help.But please see now Martin R's answer. Since the time when I posted my answer, Apple has stated their preferred answer explicitly: use
.greatestFiniteMagnitude
. It is almost the same thing as.infinity
but not quite!