setter方法的内存管理

本文介绍Objective-C中的内存管理原则,包括引用计数、retain和release的使用,以及在setter方法中如何正确处理对象所有权转移。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

set方法的内存管理


当时用alloc或者new 创建一个对象,就必调用release 或autorelease
1.你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作)
 2.你不想再使用(占用)某个对象,就应该让对象的计数器-1(让对象做一次release)
3.谁retain,谁release
4.谁alloc,谁release


当一个人想要拥有一辆车的时候,在setter方法中设置如下:

#import "Person.h"

@implementation Person
- (void)setCar:(Car *)car
{
    if (car != _car)
    {
        // 对当前正在使用的车(旧车)做一次release
        [_car release];
        
        // 对新车做一次retain操作
        _car = [car retain];
    }
}
- (Car *)car
{
    return _car;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值