806 B
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
,它会转移引用而不改变所有权