apple - objective-c从哪个版本开始就不用手动管理内存了?
PHP中文网
PHP中文网 2017-04-21 11:18:14
0
4
567

下载了xcode5,写代码时对一个变量比如NSString *str = [[NSString alloc] init]类似这样的写法,都不用手动释放内存了么?([str release])。这个特性是从xcode哪个版本开始的?
还有,那这样是不是意味着xcode5就是像java那样的自动管理内存了呢?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(4)
左手右手慢动作

2.0
2.0加了GC

伊谢尔伦

你其實是在這找篇文章吧? 《Mac OS X 背後的故事(八)三好學生Chris Lattner的LLVM編譯工具鏈》

阿神

從 iOS 5.Xcode 4.2.

阿神

目前為止Objective-C開發者可以有若干中管理記憶體的方法,最普通的[object dealloc]是一種。

MRC:每次引用[object retain]讓引用計數+1,用完[object release]防止意外釋放和野指針。

GC:這個只有Cocoa支援,NSGarbageCollector可以實現類似Java的自動垃圾回收,缺點是影響性能,因此Cocoa Touch沒有提供這個功能.

ARC:這個是新功能(其實也不算新),Xcode的新預設編譯器Apple LLVM,取代了先前的LLVM-GCC ,使用了Clang作為前端,Clang帶有一個靜態分析器,在程式碼編譯前會進行分析,在需要加入retain和release的地方由分析器代勞進行補全。 ARC可以代勞大量的手動引用計數操作,同時也避免了許多失誤。使用ARC後禁止手動使用retain和release方法,可以重載dealloc但是只實現自訂的釋放。

也是最近剛好在研究這個,如果錯誤請也請各位大大指正

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!