首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

AFNetworking 請求超時彈出雙重 Alert 原因排查

     編輯:程式設計綜合問答

現象

使用 AFNetworking 請求超時後,彈出兩個「請求超時」的 UIAlertView,且在源碼中找不到顯式調用。

分析

  • AFNetworking 本身不會自動彈出 Alert,它只負責網絡層回調。
  • 雙重彈窗通常由業務代碼重複註冊錯誤回調或在多處統一錯誤處理中重複彈窗導致。
  • 可能原因:
    • 全局錯誤處理器 + 請求級錯誤塊雙重觸發。
    • 請求重試機制導致多次失敗回調。
    • 第三方封裝庫內部已包含彈窗邏輯。

排查步驟

  1. 全項目搜索 UIAlertView、UIAlertController、show 關鍵字。
  2. 在斷點處查看調用堆棧,確認觸發來源。
  3. 檢查是否設置了 AFNetworkActivityIndicatorManager 或自定義的 AFHTTPRequestOperationManager 子類中的錯誤處理。

建議

集中錯誤提示邏輯到統一處理類,避免分散在各業務層;使用單例或事件總線分發錯誤,確保同一錯誤僅提示一次。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved