何时使用__bridge_transfer和__bridge

use*_*155 4 iphone objective-c ipad ios

  1. 任何人都可以解释一下'__bridge_transfer'和'_ bridge'以及什么时候使用' _bridge_transfer'和'__bridge'
  2. 我读过像ARC这样的交易,那么这两者的主要功能是什么

谢谢,

MrT*_*rTJ 9

这些关键字用于告诉ARC系统如何处理非Objective-c指针.本质上,如果你使用__bridge,你告诉ARC不要处理转换指针的所有权,因为你将它从非Objective-c代码中释放出来,很可能是free()或CFRelease ...类型功能.另一方面,__ bridge_transfer将所有权转移到ARC,当对该对象的引用达到零时,ARC将通过标准释放机制释放您的objective-c(以及原始的非objective-c)对象.