Transforming values with setters and getters
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
to 0
and values higher than 50
to 50
. The setter stores either the transformed or original value that is in a valid range in the related runningSpeedScoreField
property. The getter returns the value of the related runningSpeedScoreField
property, that is, the private property that always stores a valid value. We have to replace the previous...