分享

!!bridge 对非arc的retainCount,是+1,-1,还是保持不变

 quasiceo 2015-04-01
arc,非arc相互转换,对非arc的retainCount,是+1,-1,还是保持不变。
其实retainCount的目的就是确定对象的作用域。为0,则无效,可以释放。

bridge  不会修改非arc的retaincount。
 1.如果转换得来的新的非arc对象的作用域不超过老的arc对象,
    例如函数参数类型转换,并且,新旧对象是toll free的即底层对象实际上是相同的。
   则不需要对新的非arc对象 的retainCount操作。
2.非arc, 转arc,转换后,非arc仍有引用。显然转换不应该修改非arc的retainCount。

如果转换得到一个arc,原来的非arc立即不用了,则transfer ,对非arc,retaincount--。
转换得到一个新的非arc,则要对其retain一次,相当于设置retaincount=1.


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多