Don't unschedule selectors in a destructor. The scheduler retains the object, so the only time this could run is when the target has already been unscheduled.