我有一個對象,充當我的視圖控制器和我的web服務之間的連接層。該對象需要一個委託,並在從服務器返回數據時通知該委託。我遇到了一個問題,當一個http請求正在運行時,委託被取消分配。當請求返回時,我的對象嘗試調用委託上的方法並且應用程序崩潰。iOS:如何處理髮布的代理
處理這個問題的最佳方法是什麼?我已經在幾個地方讀過,你不應該保留你的代表,因爲他們經常保留這個對象,導致循環依賴。所以,如果我不能保留我的委託,那麼在我調用它的方法之前,如何檢查它是否已被解除分配?
@property (nonatomic, assign) NSObject<ServerConnectionDelegate>* delegate;
也許使用'retainCount'?你在使用ARC嗎? – darksky
@Darksky,**從來沒有**使用保留計數:) – Vladimir
@Darksky,即使這是一個好主意,你不能調用'retainCount',因爲它會導致完全相同的錯誤(我試過)。 – mtmurdock