Swift在开始新的异步操作之前等待现有的异步操作完成

时间:2016-05-08 06:25:19

标签: ios xcode swift asynchronous

我正在使用基于令牌的身份验证的Swift项目。当应用程序从后台恢复时,AppDelegate函数<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <Style TargetType="{x:Type TextBox}" x:Key="MyTextBox"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <TextBox Width="500" Background="LightGreen" TextChanged="TextChanged" /> </ControlTemplate> </Setter.Value> </Setter> </Style> 会进行检查以确保内存中的令牌没有过期(到期日期存储在applicationWillEnterForeground()和{{1}中变量)。如果它已过期,它会调用一个函数来续订并获得一个新函数。

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

在我们做其他事情之前,有没有办法确保更新令牌的异步功能已经完成?

1 个答案:

答案 0 :(得分:0)

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

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

检查身份验证时,请视情况发送这些通知。