论坛风格切换
您好,欢迎光临本站!   登录 注册新用户
  • 2524阅读
  • 2回复

[其他]ios开发系列之objective-c 内存管理 [复制链接]

上一主题 下一主题
 
发帖
16
黑豆
81
威望
80
贡献值
0
交易币
0
红豆
0
只看楼主 倒序阅读 0 发表于: 2016-03-02
objective-c内存管理中对象时存储在堆中的,系统并不会自动释放堆中的内存。如果一个对象创建并使用后没有得到及时释放那么就会占用大量内存。其他高级语言如C#Java都是通过垃圾回收来(GC)解决这个问题的,但在objective-c内存管理中并没有类似的垃圾回收机制,因此它的内存管理就需要由开发人员手动维护。今天将着重介绍objective-c内存管理:在Xcode4.2及之后的版本中由于引入了ARC机制,程序编译时Xcode可以自动给你的代码添加内存释放代码,如果编写手动释放代码Xcode会报错,因此在今天的内容中如果你使用的是Xcode4.2之后的版本,必须手动关闭ARC,这样才有助于你理解objective-c的内存回收机制。但是在objective-c中没有垃圾回收机制,那么objective-c中内存又是如何管理的呢?其实在objective-c中内存的管理是依赖对象引用计数器来进行的:在objective-c内存管理中每个对象内部都有一个与之对应的整数,叫“引用计数器”,当一个对象在创建之后它的引用计数器为1,当调用这个对象的allocretainnewcopy方法之后引用计数器自动在原来的基础上加1,当调用这个对象的release方法之后它的引用计数器减1,如果一个对象的引用计数器为0,则系统会自动调用这个对象的dealloc方法来销毁这个对象。

发帖
113
黑豆
115
威望
115
贡献值
0
交易币
0
红豆
0
只看该作者 2 发表于: 2016-07-15
ios寮
I really like this card!1468544118.14
快速回复
限100 字节
 
上一个 下一个