OC 内存引用计数 内存管理机制

内存引用计数:用于管理对象内存的使用次数’  (注意:是对内存的引用计数)

注意: 否指向同一块地址空间

只有当内存的引用计数为0时,内存自动释放

release:仅仅让通过指针让内存的引用计数-1

assign: 基本数据类型 

retain:浅拷贝,但是引用计数会+1   @propertyretain<=>  -(void)setP:(point*)_p{  p=[_p retain];  }    

-(point*)p{ return p; }  //  函数原型

copy:指针,深拷贝新创建的对象引用计数+1 原对象引用计数不变

// copy 原型实现

-(id)copyWithZone:(NSZone*)zone{

    point* newpoint=[[point allocWithZone:zone] init];

    [newpoint setX:x];

    [newpoint setY:y];

    NSLog(@"调用了拷贝原型");

    return newpoint;

}

// circle.m设置p1

-(void)setP1:(point*)_p1{

    [p1 release];

    p1=[_p1 copy];

}

-(point*)p1{

    return p1;

}

copywithzone方法实现的位置:拷贝哪一个对象,就在哪一个对象中实现此方法(如点与圆中,应在点的.m文件中实现)


autorelease 

将对象放入自动释放池中,当自动释放池本身生命周期结束的时候,自动释放池向池中所有对象发送release消息,释放池中的对象,达到统一管理与延迟释放的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值