Yes, with UISwitch in the iOS 7 iPad simulator, I see 1-12 callbacks for my equivalent of your switchToggled: method. The last callback actually changed the value. In previous callbacks, this did not happen. What I am doing is caching whether the switch is on. Then, in the switchToggled: method, I check to see if the value has really changed. If it is not, I ignore the callback. This, apparently, leads to the correct operation of the user.
The problem also occurs on the device, although it seems to be less common. It seems that the same thing works there.
William Jockusch
source share