2011-03-31 50 views

回答

2

您的代码释放内存,因为有一个单页头,和一个版本 - 中金额指针到对象不是一个因素。

所有权是概念,大约因为如果你跟着它可以更容易地管理和最终防止与释放的东西,你不应该释放问题的指导方针Object Ownership policy会谈(或没有释放的东西,你应该)。

+0

是的,谢谢。正是我想知道的 – 2011-03-31 11:09:25

0

你的示例将不会导致内存泄漏作为var1var2指向同一个对象在内存因此alloc呼叫具有匹配release。如果NSObject保留,因为它被分配到然而var2,就不会有因为将没有匹配release内存泄漏。

当关于所有权的概念存储器管理导向会谈,它并不意味着一个变量(例如var1)拥有的对象;它更多的是关于“范围”所拥有的(例如类或方法)。在你的例子中,包含这些语句的方法将负责释放该对象。

0

你的代码是所有权利不漏。但是看起来你并不是很了解指针。指针不能拥有另一个对象,它只是一个参考,它告诉计算机正在访问哪个对象。在Cocoa的引用计数内存模型中,根本没有多少指针指向单个对象。

你真的应该学习C(尤其是关于指针),你尝试学习Objective-C之前。

0

这是保持一个引用计数,而不是指向对象的对象。如果你有十几个指向对象的指针,你可以使用它们中的任何一个来释放对象,因为它们都指向同一个对象。但是,如果你不玩这些类型的游戏,那么遵循你的代码会更容易,并且确保你没有内存管理问题。

相关问题