我以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