And*_*nan 3 iphone cocoa-touch objective-c
通过阅读SDK中的内存管理文档,我收集了工厂方法(静态构造方法)通常会为我保留对象并将其添加到自动释放池中?
这意味着只要池在我预期之前没有被释放,我就不需要保留和释放对象了吗?(应该在应用程序的末尾,对于main()中的默认自动释放池?)
这个问题:可可触摸问题.应保留[NSMutableArray数组]吗?似乎同意这一点.
但是,当我使用NSMutableArray arrayWithCapacity:方法时,我发现我必须保留数组或所有heck松散.
我确信这只是总计n00b-ness,或代码中其他地方的一个奇怪的错误,但如果有人能够解释我究竟是怎么会误解,我会非常感激.
谢谢!
更新:感谢您的回答.我想我现在已经有了!
通过阅读SDK中的内存管理文档,我收集了工厂方法(静态构造方法)通常会为我保留对象并将其添加到自动释放池中?
是的,你不必担心释放任何方法返回的对象,除了alloc,init,new,和copy方法.
这意味着只要池在我预期之前没有被释放,我就不需要保留和释放对象了吗?
是.
(应该在应用程序的末尾,对于main()中的默认自动释放池?)
不可以.只有在你从任何方法或函数返回时才能依赖周围的对象.通常,当控制返回到运行循环时,自动释放池会被刷新.
如果您希望对象实例超越当前方法,则必须通过调用"retain"来获取它的所有权.然后,当您不再需要时,您还负责"释放"该实例.
在你的情况下,如果你想要你的NSMutableArray,你需要retain它.更好的是,使用[[NSMutableArray alloc] initWithCapacity: ];
请参阅实用内存管理
| 归档时间: |
|
| 查看次数: |
1798 次 |
| 最近记录: |