我是Objective-c的新手。我寫了幾行代碼來異步訪問Web服務,然後處理結果。你能解釋一下當一個異步方法將委託(協議)作爲參數時,ARC如何工作?Objective-C異步方法和ARC
-(void) invokeSomeWebServiceMethod {
MyDelegate *const theDelegate = ...;
NSURL *const url = ...;
NSURLRequest *const request = ...;
[NSURLConnection connectionWithReuqest: request delegate:theDelegate];
}
我不知道這種方法是有效的,因爲這是作爲結果返回隱含NSURLConnection
:
比如我通過一種方法使用本地NSURLConnection
調用Web服務connectionWithRequest
消息應該標記爲清理,因爲調用方法和委託都沒有引用它。但它的作品!
所以:
- 如何運行時不知道過早地擦拭出
NSURLConnection
是在幹什麼工作的? - 列表項目我是否應該在我的代理中釋放/關閉連接一次
connectionDidFinishLoading
收到消息? - 代表聲明
invokeSomeWebServiceMethod
並將self
作爲connectionWithRequest
消息的一部分聲明更有意義嗎?然後創建NSURLConnection
被封裝在委託內。
感謝
謝謝你,讓我玩/學習分配工具,並回來。 「 – hba
」當連接正在下載時,它保留下來。「 - 這是否記錄在某處?我曾經討論過這個問題,但找不到參考。 –