NSURLConnection 在第二次調用時掛起的原因可能有以下幾個:
連接已經被取消或關閉:如果在第一次調用的連接還沒有完成或關閉時,進行第二次調用,會導致第二次調用失敗。可以通過檢查連接的狀態來確定是否可進行第二次調用。
緩存問題:如果在第一次調用時使用了NSURLRequest的緩存策略,并且緩存數據在第二次調用時仍然有效,那么第二次調用可能會直接從緩存中獲取數據,導致連接掛起。
網絡問題:如果在第一次調用時發生了網絡故障或超時,那么第二次調用可能會受到網絡問題的影響,導致連接掛起。可以通過檢查網絡連接和調整超時設置來解決。
并發問題:如果在第一次調用時沒有等待連接完成或關閉,就進行了第二次調用,那么第二次調用可能會因為連接資源已經被第一次調用占用而掛起。可以使用GCD或NSOperationQueue等方式來實現并發操作,避免并發問題。
需要根據具體的使用場景和代碼邏輯來確定具體原因,并進行相應的調試和處理。