我有一個類,它基於幾個傳入的變量來構建請求。該類還具有所有的委託方法來接收數據並將其存儲在一個屬性中以供調用類檢索。叮噹發現內存泄漏,但無法釋放和autorelease崩潰
當類初始化它創建一個連接,然後返回自己:
NSURLConnection *connection;
if (self = [super init]) {
self.delegate = theDelegate;
...some code here...
connection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self startImmediately:YES];
}
return self;
所以我不能正常釋放它,如果我自動釋放它崩潰。調用類的工作是釋放嗎?如果是這樣,只是釋放initilised對象還釋放連接,或者你需要特別發佈它?如果是的話,你會怎麼樣?
感謝
是的想到這一點,但想看看是否有一個公約釋放它。 – Rudiger
+1約定是你保留你關心的東西,然後釋放你不再關心的東西。在幾乎所有可以想象到的情況下,如果你關心它,你就會把它放在伊娃裏。蘋果通過在示例代碼中不創建NSURLConnection的ivar來對新開發人員造成很大損害。它「起作用」是因爲NSURLConnection的實現細節,但它很混亂,並設置了一個不好的例子。使用伊娃。 –
啊k,感謝那 – Rudiger