[英]Swift wait for existing async operation to finish before starting a new one
我正在使用基於令牌的身份驗證的Swift項目。 當應用程序從后台恢復時,AppDelegate函數applicationWillEnterForeground()
進行檢查以確保內存中的令牌尚未到期(到期日期存儲在NSUserDefaults
和token_expiry
變量中)。 如果已過期,它將調用一個函數來續訂並獲取一個新函數。
我面臨的問題是,當異步功能正在等待服務器使用新令牌答復時,應用程序中的用戶可能會執行需要授權的操作。 如果發生這種情況,由於尚未獲取新令牌,因此應用程序將使用舊令牌值查詢服務器,並且不會檢索到數據。
有沒有辦法確保在執行其他任何操作之前更新令牌的異步功能已經完成?
設置一個NSNotifications系統,以在身份驗證有效/無效時通知您的GUI。
在您的GUI中,在發生通知時啟用或禁用需要身份驗證的用戶控件。 如何執行此操作將取決於您的GUI設計:隱藏控件,將控件顯示為灰色和活動指示器是一些選項。
在檢查身份驗證時,適當發送這些通知。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.