iOS保证回调只执行一次