__bridge_transfer.md 806 B

#ios

用法

当您使用 时__bridge_transfer,表示您想要取得 Core Foundation 对象的所有权并将其转让给 ARC。这意味着 ARC 将管理此对象的内存,您无需手动释放它。

例子

这是一个如何使用的简单示例__bridge_transfer

CFStringRef cfString = CFStringCreateWithCString(kCFAllocatorDefault, "Hello, Core Foundation!", kCFStringEncodingUTF8);

// Transfer ownership to ARC
NSString *objcString = (__bridge_transfer NSString *)cfString;

// Now objcString is managed by ARC, and you don’t need to release cfString

重要说明

  • 使用__bridge_transfer意味着当 Objective-C 对象超出范围时,Core Foundation 对象将被自动释放。
  • 如果你使用__bridge,它会转移引用而不改变所有权