当前位置:  开发笔记 > IOS > 正文

说Getter是实例变量的所有者是否有效?或谁拥有它?

如何解决《说Getter是实例变量的所有者是否有效?或谁拥有它?》经验,为你挑选了1个好方法。

其实我会说:是的,Getter是主人.因此,任何调用Getter的人都不负责释放内存.或者更确切地说,对象本身是所有者,但Getter充当实例变量的传递机制给其他人.这是对的,还是我弄错了?



1> Jens Alfke..:

谈论对象而不是方法,拥有对象更有意义.

通常,调用getter的对象是要返回的对象的所有者,因为返回值是一个实例变量:

(Foo*)foo {return _foo; //我的实例变量}

但是,getter创建一个已自动释放的临时对象并返回它也很常见:

(NSString*)sizeStr {return [NSString stringWithFormat:@"%d",self.size]; }

在这种情况下,该对象(NSString)实际上没有所有者,除了当前的自动释放池,它将在退出时释放它.

在(非GC)Cocoa编程中要记住的重要规则与所有权本身没有关系,但是当你有一个对象的引用时(你必须在某个时候发布)和你不在"T.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有