62、iOS开发中的内存管理与自动引用计数

iOS开发中的内存管理与自动引用计数

1. 手动内存管理基础

在手动内存管理中,当需要后续使用某个对象时,会向该对象发送 -retain 消息,并将其存储在更持久的变量中,通常是一个属性,其 setter 方法会自动发送 -retain 消息,示例代码如下:

- (void)fosse
{
    NSArray *jazz = [self allThatJazz];
    self.modernJazz = jazz;
}

自动释放池由应用的事件循环创建和释放。在每个事件被分发到代码之前,会创建一个自动释放池,所有接收到 -autorelease 消息的对象都会被添加到该池中。当代码执行完毕,控制权返回事件循环时,自动释放池会被排空,销毁所有临时对象。在分发下一个事件之前,会创建一个新的自动释放池,如此循环。也可以使用 @autoreleasepool { ... } 指令创建自己的自动释放池,但这种用法比较少见。

手动内存管理的基本规则总结如下:
- 创建对象( [[Class alloc] init] -copy )后,有两种处理方式:
- 使用对象后发送 -release 消息。
- 发送 -autorelease 消息。
- 消息返回的对象在方法执行期间可以安全使用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值