我以Daniel H Setinberg的「Cocoa Programming」開始我的Objective-C旅程。有一點讓我驚訝於內存管理。實際上,我發現目標C中的內存管理比C中的複雜,儘管我一段時間沒有觸及「非垃圾收集語言」,所以使用malloc及其朋友的舊時代可能在我的記憶中是理想化的:)。Objective-C自動釋放池
這讓我感到困惑的一點是:
-(void) loadURLFromTextField{
NSURL *url = [NSURL URLWithString:self.address.text];
NSURLRequest *request = [NSURLRequest requestWithUrl:url];
[self.webView loadRequest:request];
}
在二,三線
我分配的兩個對象,所以我認爲我需要在一些地方釋放他們。然而,對於該位的代碼的註釋內容指出:
「請注意,我們使用類方法 構建的 自動釋放的情況下,請求和URL我們不需要 釋放他們自己。」
有人可以幫我理解爲什麼這些實例是自動發佈的,以及如何從SDK文檔中獲取此信息。所有返回對象實例的類方法實際上都是自動釋放的,這是否是一種標準。感謝您的幫助!
我沒有足夠的肯定,使其答案知道這一點,但總的來說,如果你沒有執行'alloc',那麼你就不需要擔心'release'。相反,如果你「分配」了一些你要負責的東西。 – Gareth 2011-03-26 11:35:00