2013-03-23 16 views
0

假設我有一個在視圖控制器上有開關的iOS應用程序。我想用這個開關來改變用戶在服務器端的設置。因此,當用戶翻轉交換機時,我啓動異步NSURLConnection來更改設置,並且服務器響應以指示更改成功,以便應用的UI反映更改。視圖控制器將有代碼來處理響應,但如果用戶在翻轉開關後但在響應回來之前更改視圖控制器,會發生什麼情況?viewController更改時如何處理異步NSURLConnections?

回答

0

有兩種方法:

  1. 塊的用戶通過顯示進程控制器。
  2. 如果您不想阻止用戶,請在取消分配視圖控制器時取消通信。如果您不想關閉通信,請將委託對象更改爲某個全局對象。一旦溝通完成,該對象將通過通知。
0

NSURLConnection保留其委託。如果委託是一個視圖控制器,並且用戶遠離視圖控制器,則可能需要取消該請求並將其釋放到視圖控制器的dealloc中。如果你不這樣做,視圖控制器將不會被解除分配,直到連接成功或失敗,並在視圖控制器上調用相關的委託方法,因爲NSURLConnection仍然有強烈的引用。