博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C内存管理机制
阅读量:6985 次
发布时间:2019-06-27

本文共 652 字,大约阅读时间需要 2 分钟。

Objective-C内存管理机制分成两种:MRC和ARC

(1)MRC (Manual Reference Counting)

  • 当前系统默认都是采用ARC,如果想使用MRC需要在build settings里把Objective-C Automatic Reference Counting设置成No。
  • 通过类对象的retainCount属性可以查询该类的引用计数
  • 通过类对象的retain方法可以将引用计数加一
  • 通过类对象的release方法可以将引用计数减一
  • 当引用计数为0时,系统自动调用dealloc析构函数,不要在代码里显式调用
  • autorelease和@autoreleasepool配合使用,当对象超出@autoreleasepool范围的时候,引用计数会被减一。

  @autoreleasepool{

     //如果加上[A retain] 就不会被释放

     //[A retain]

    A* a = [ [ [A alloc] init] autorelease];

  }

 

(2)ARC(Automatic Reference Counting)

  • 在ARC模式下,autorelease,retain,release,retainCount
  • 在ARC模式下,在delloc函数中不能写[super delloc]
  • ARC由编译器添加retain和release

转载于:https://www.cnblogs.com/jacky1982/p/7524103.html

你可能感兴趣的文章
[perl] 正则表达式实现多模式匹配
查看>>
RCP之病人信息系统开发总结(1):数据库设计
查看>>
js数组操作,拼写好像,没看清楚就容易出错的。
查看>>
C# winform搜索提示的一些想法
查看>>
table的thead/tbody/tfoot/tr/th/td
查看>>
Delphi多媒体设计之TMediaPlayer组件(五)
查看>>
基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。...
查看>>
在新弹出页面下载
查看>>
ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
查看>>
class左边nbu 2414 Please help the poor donkey!
查看>>
[转]UML类图、关系及其JAVA代码
查看>>
销售管理系统设计与实现源码
查看>>
PhotoShop算法原理解析系列 - 像素化---》碎片。
查看>>
oracle卸载清除注册表(彻底卸载)
查看>>
PHP event 事件机制
查看>>
【ARDUINO】HC-05蓝牙不配对问题
查看>>
CentOS ping: unknown host 解决方法
查看>>
设计模式之责任链模式
查看>>
在 Windows 下安装 Oracle 11g XE (Express Edition)
查看>>
php多态设计
查看>>