oc 内存管理

拥有着权限:

rop(可保留指针)   non-rop(不可保留指针)

我们不能把单纯的将rop 和 non-rop进行转换 因为arc需要知道这个指针的所有权信息


_bridge  操作符:不改变指针的所有权  所有权归rop所有

_bridge_retained : 所有权会转移到non-rop  调用的时候其实在对象身上进行了retain 当non-rop不用的时候需要进行release

_bridge_transfer:把non-rop 对对象的所有权  转交给 rop 


c的结构体是不能拥有rop的 可以利用 void*  xxx  和 桥接解决


在arc下不可以调用的方法  retain retainCount  release   autorelease  dealloc

在arc下不可以重写的方法  retain retainCount  release   autorelease 

dealloc 方法不可以调用  [super dealloc]


保留环:

某创建a时创建了b  (a 1  b 1)  又因为b强引用a 故(a 2 b 1) 当对象不需要a的时候对a进行释放    (a 1 b 1) 没有对象对a 或者 b 又引用  故 a b 内存永远不会释放 导致了内存的泄漏


垃圾回收:可以通过编译器选项进行设置  编译器会跟踪对象  当对象不再被其他对象引用时 就把他释放掉 但是释放的时机是不确定的  



arc只是在编译期间自动添加了内存管理的消息(自动添加一些函数retain 等)   autoreleasepool 是自动释放池  两者并不冲突




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值