iOS Objective-C 中是否支持垃圾回收机制
2017-08-26 21:04
288 查看
//联系人:石虎
QQ: 1224614774昵称:嗡嘛呢叭咪哄
一、OC 回收机制概念
1.OC是支持垃圾回收机制的(Garbage
collection简称GC),
2.macOS开发中是支持的,但是iOS中,是不支持GC的。
3.iOS开发只支持手动内存管理和ARC,Mac开发支持GC垃圾回收机制,
18.8之后弃用了GC,
对剑使用ARC
4.iOS开发是支持ARC(Automatic Reference Counting的简称),ARC是在IOS5之后推出的新技术,它与GC的机制是不同的。
二、OC 回收机制区别
我们在编写代码时, 不需要向对象发送release或者autorelease方法,也不可以调用delloc方法,编译器会在合适的位置自动给用户生成release消息(autorelease),
ARC 的特点是自动引用技术简化了内存管理的难度.
ARC介于自动垃圾回收(GC)和手动内存管理之间。就像垃圾回收,ARC让程序员不再需要书写retain/release/autorelease语句。但它又不同于垃圾回收,ARC无法处理retaincycles。在ARC里,如果两个对象互相强引用(strong
references)将导致它们永远不会被释放,甚至没有任何对象引用它们。
因此,尽管ARC能免去程序员大部分内存管理问题,但仍然要程序员自己避免retaincycles或手动打断对象之间的retain循环。
ARC和苹果的垃圾回收之间还有一个重要的不同:ARC不是强制的。而对于苹果的垃圾回收,要么整个程序都使用,要么都不用。也就是说在app中的所有O-C代码,包括所有的苹果框架和所有的第3方库必须支持垃圾回收,才能使用垃圾回收。相反,ARC和非ARC代码可以在一个app中和平共处。这使得将项目可以零星地迁移到ARC
而不会像垃圾回收起初遇到的各种兼容性和稳定性的问题。
QQ: 1224614774昵称:嗡嘛呢叭咪哄
一、OC 回收机制概念
1.OC是支持垃圾回收机制的(Garbage
collection简称GC),
2.macOS开发中是支持的,但是iOS中,是不支持GC的。
3.iOS开发只支持手动内存管理和ARC,Mac开发支持GC垃圾回收机制,
18.8之后弃用了GC,
对剑使用ARC
4.iOS开发是支持ARC(Automatic Reference Counting的简称),ARC是在IOS5之后推出的新技术,它与GC的机制是不同的。
二、OC 回收机制区别
我们在编写代码时, 不需要向对象发送release或者autorelease方法,也不可以调用delloc方法,编译器会在合适的位置自动给用户生成release消息(autorelease),
ARC 的特点是自动引用技术简化了内存管理的难度.
ARC介于自动垃圾回收(GC)和手动内存管理之间。就像垃圾回收,ARC让程序员不再需要书写retain/release/autorelease语句。但它又不同于垃圾回收,ARC无法处理retaincycles。在ARC里,如果两个对象互相强引用(strong
references)将导致它们永远不会被释放,甚至没有任何对象引用它们。
因此,尽管ARC能免去程序员大部分内存管理问题,但仍然要程序员自己避免retaincycles或手动打断对象之间的retain循环。
ARC和苹果的垃圾回收之间还有一个重要的不同:ARC不是强制的。而对于苹果的垃圾回收,要么整个程序都使用,要么都不用。也就是说在app中的所有O-C代码,包括所有的苹果框架和所有的第3方库必须支持垃圾回收,才能使用垃圾回收。相反,ARC和非ARC代码可以在一个app中和平共处。这使得将项目可以零星地迁移到ARC
而不会像垃圾回收起初遇到的各种兼容性和稳定性的问题。
谢谢!!!
相关文章推荐
- iOS中是否支持垃圾回收机制
- jvm垃圾回收机制(二)算法和如何进行判断对象是否回收实例
- 垃圾回收机制--性能方面考虑的因素
- 深入理解java的垃圾回收处理机制
- java中的gc垃圾回收机制
- 【转】Flash Player的垃圾内存回收机制:能否强制回收?
- 【PHP进阶学习】——垃圾回收机制
- 三大Java 虚拟机垃圾回收机制的比较(HotSpot, JRockit, IBM JVM)
- Java垃圾回收机制
- Java垃圾回收机制(2)
- Java的垃圾回收机制
- JVM 垃圾回收机制和常见算法
- 深入浅出Java垃圾回收机制
- 深入理解JVM--JVM垃圾回收机制
- c#资源管理和垃圾回收机制
- JVM垃圾回收机制
- Java分代垃圾回收机制:年轻代/年老代/持久代(转)
- 全面分析Java的垃圾回收机制
- JAVA垃圾回收机制概要
- 浅谈V8引擎中的垃圾回收机制