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. 什麼?意味着iOS的
- 2. void **意味着什麼
- 3. PREEMPTIVE_XE_DISPATCHER這意味着什麼?
- 4. Field.Index.NOT_ANALYZED_NO_NORMS意味着什麼
- 5. HttpServletResponse.SC_BAD_REQUEST意味着什麼?
- 6. 什麼呢##意味着在$ {}
- 7. Solr意味着什麼?
- 8. 溢出意味着什麼?
- 9. 什麼===在PHP意味着
- 10. * | *這意味着什麼CSS?
- 11. 什麼<?意味着
- 12. 什麼。意味着在PHP?
- 13. %是什麼〜DP0意味着
- 14. 什麼-Dauto意味着
- 15. 什麼%*%意味着R中
- 16. AccountExpirationDate意味着什麼?
- 17. 這是&意味着什麼?
- 18. $這意味着什麼PHP?
- 19. 什麼呢JDBC:HSQLDB:hsqlTempFiles意味着
- 20. 奎因意味着什麼?
- 21. malloc意味着什麼(int *)?
- 22. MYSQLI_NUM意味着什麼?
- 23. 在AngularJS中結尾意味着什麼double意味着
- 24. 〜=是什麼。在Stata意味着什麼?
- 25. 什麼(.browser-default).valid意味着什麼?
- 26. jQuery中的$([])意味着什麼
- 27. perl中的〜意味着什麼?
- 28. LISP中的反撥意味着什麼?
- 29. ASP MVC中的「@」意味着什麼?
- 30. Verilog中的變量意味着什麼?
你的意思是我們不能使用「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