We can define a property with a setter method that transforms the values that will be set as valid values for a related property. The getter method would just need to return the value of the related property to generate a property that will always have valid values even when it is initialized. This way, we can make sure that whenever we require the property value, we will retrieve a valid value.
The following code replaces the previously declared
runningSpeedScore property declaration that worked with a property observer, specifically, a
didSet method. In this case, the setter transforms the values lower than
0 and values higher than
50. The setter stores either the transformed or original ...