[英]iphone Cancel Asynchronous NSURLConnection
我遇到這樣的情況,我的班級正在進行一個異步Web調用,而用戶又通過移動地圖請求了另一個Web調用,並且似乎無法正確取消NSURLConnection。 我已經看到了一些管理多個異步調用的解決方案,但是我不想這樣做,因為一旦發出第二個請求,我就不再關心第一個。 我看到有一個cancel方法,但是我嘗試僅在連接為nil時才調用它,但是盡管該對象已發布,但連接似乎從未變為nil。 是否有人有適當取消異步NSURLConnect的代碼示例?
我認為您不了解目標C消息傳遞或保留/釋放。 向對象發送保留或釋放將永遠不會導致您為該對象持有的指針變為零(盡管該對象可能不再有效)。 換一種說法:
id a = b;
[a release];
//since release never changes the value of a
assert(a == b);
好的,話雖如此,如果釋放代碼以某種方式將您調用它的對象指針的值更改為nil,那么向它發送另一個消息將無濟於事。 零消息被靜默丟棄。 請記住,您持有的是對象的指針,而不是對象本身。
話雖如此,如果您想取消NSURLConnection。 必須先釋放取消,然后再釋放它(通常,釋放對象后再向對象發送消息永遠是不正確的)。
我真的建議您閱讀Apple的Memory Management 文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.