2
A
回答
5
之前
版本2.0 Objective-C中使用的战略reference counter跟踪和管理存储器。从2.0开始,垃圾收集器可以被激活,但是,在iPhone上尚未提供。
看一看关于Objective-C引用计数器策略的文章here。
现在,2011年,似乎GC机制已被弃用,以支持自动引用计数(ARC)机制。
自动引用计数
自动引用计数(ARC)的Objective-C中,内存管理的编译器的工作。通过在新的Apple LLVM编译器中启用ARC,您将永远不需要再次输入retain或release,从而大大简化了开发过程,同时减少了崩溃和内存泄漏。编译器完全了解您的对象,并在每个对象立即不再使用时释放它们,因此应用程序可以以前所未有的速度运行,并具有可预测的平滑性能。
2
假设“方法”是以下约定它将呼叫方(除非方法被调用的alloc,新的或复制)的范围期间被返回任一种autoreleased参考,或一些保证有效。因此,如果没有保留,引用在直接调用上下文中应该是有效的,但如果您想在实例变量中保留它,则需要保留。
因此,如果您只是在通话的紧接着的上下文中使用“对象”,则不需要保留 - 否则您会这样做。
如果你要做保留计数,你很熟悉这个语义是非常重要的。网上有许多适合的参考文献,但我会重复the one epatel has already given, which is another stackoverflow question。
相关问题
- 1. PREEMPTIVE_XE_DISPATCHER这意味着什么?
- 2. Field.Index.NOT_ANALYZED_NO_NORMS意味着什么
- 3. $这意味着什么PHP?
- 4. 什么===在PHP意味着
- 5. MYSQLI_NUM意味着什么?
- 6. * | *这意味着什么CSS?
- 7. 溢出意味着什么?
- 8. HttpServletResponse.SC_BAD_REQUEST意味着什么?
- 9. 什么呢JDBC:HSQLDB:hsqlTempFiles意味着
- 10. 奎因意味着什么?
- 11. 在AngularJS中结尾意味着什么double意味着
- 12. 〜=是什么。在Stata意味着什么?
- 13. matlab中的参数意味着什么?
- 14. Handler.sendEmptyMessage中的零意味着什么(0)
- 15. perl中的〜意味着什么?
- 16. 是什么?在Android的XML意味着
- 17. matplotlib中bar3d的zsort意味着什么
- 18. jQuery中的$([])意味着什么
- 19. robots.txt中的加号意味着什么?
- 20. JavaScript中的竖条意味着什么?
- 21. Objective-C中的@意味着什么?
- 22. preg_match中的符号意味着什么?
- 23. MySQL中的节点意味着什么?
- 24. 猪的双冒号意味着什么?
- 25. 什么perl的-I意味着
- 26. Verilog中的变量意味着什么?
- 27. Groovy中的“private”意味着什么?
- 28. BorderLayout的参数意味着什么?
- 29. Java中的空间意味着什么?
- 30. C++中的〜意味着什么?
你的意思是我们不能使用“object = [[class method] retain];”在iPhone – 2009-10-12 08:21:07
不需要。您必须在iPhone上使用保留/释放。我可能写了一些混乱。保留/释放即将出台。有些喜欢它,有些则不喜欢。 – epatel 2009-10-12 10:19:45
从Xcode 4.2开始,自动引用计数(ARC)将适用于iOS 4和5.基本上,您永远不需要在代码中再次写入保留/释放。 – 2011-09-05 21:12:21