繁体   English   中英

Swift等待现有的异步操作完成后再开始新的操作

[英]Swift wait for existing async operation to finish before starting a new one

我正在使用基于令牌的身份验证的Swift项目。 当应用程序从后台恢复时,AppDelegate函数applicationWillEnterForeground()进行检查以确保内存中的令牌尚未到期(到期日期存储在NSUserDefaultstoken_expiry变量中)。 如果已过期,它将调用一个函数来续订并获取一个新函数。

我面临的问题是,当异步功能正在等待服务器使用新令牌答复时,应用程序中的用户可能会执行需要授权的操作。 如果发生这种情况,由于尚未获取新令牌,因此应用程序将使用旧令牌值查询服务器,并且不会检索到数据。

有没有办法确保在执行其他任何操作之前更新令牌的异步功能已经完成?

设置一个NSNotifications系统,以在身份验证有效/无效时通知您的GUI。

在您的GUI中,在发生通知时启用或禁用需要身份验证的用户控件。 如何执行此操作将取决于您的GUI设计:隐藏控件,将控件显示为灰色和活动指示器是一些选项。

在检查身份验证时,适当发送这些通知。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM