2012-11-08 46 views
0

嗨,我正在開發一個iPhone應用程序。我需要將B類的NSURLConnection委託給B類。在建立連接的時候,我回到先前的視圖,即A類。因此,B類對象被解除分配,並且我從NSURLConnection收到錯誤,因爲它是委託給B類。那麼,如何建立連接,以便即使我已導航到A類也不會崩潰。我們是否使用GCD或其他不同線程使此工作正常,而無需設置不同的委託。建立NSURLConnection及其響應

+0

你是如何導航A和B之間來回轉移?你在使用導航控制器嗎? – rdelmar

+0

@rdelmar是它的一個導航控制器 – krishh

回答

0

你必須保持強烈的參考B級的連接,例如@property (strong, nonatomic) NSURLConnection * connection,然後爲你擺脫B級的,你可以調用[self.connection cancel];

從蘋果公司的NSURLConnection的參考文獻:

調用此方法後,連接的委託不再接收任何連接消息。如果你想重新嘗試連接,你應該創建一個新的連接對象。

一個好地方,把這個在-[UIViewController viewDidDisappear];

+0

我需要保持連接活着,即使我回到A類,因爲我需要在A類連接完成後使用響應 – krishh

+0

,那麼A類應該管理連接,B類應該使用委託來告訴A類何時啓動它 – jackslash

0

在你ClassA的,你應該建立一個強大的性能爲您的ClassB的實例,否則,當你回到ClassA的,ClassB的被彈出堆棧和釋放。另外,如果你想,當你再次推去CLASSB的同一個實例,你的代碼,你推到ClassB的應該是這個樣子(假設你有一個名爲ClassB的屬性):

if (! self.classB){ 
    ClassB self.classB = [[ClassB alloc] init]; 
} 
[self.navigationController pushViewController:self.classB];