这是我目前所做的:
基本上我在做桥接时有这两条规则
从 CF 土地转换为 NS 土地,使用 CFBridgingRelease 从 NS 土地转换为 CF 土地,使用 __bridge。
我从未见过苹果的示例代码以不同的方式进行。
这是一个示例:
ABRecordRef ABWhatIsThis= (__bridge ABRecordRef)([self.allMyContacts objectAtIndex:indexPath.row]);
NSString * strName= CFBridgingRelease (ABRecordCopyCompositeName (ABWhatIsThis));
原因是当我想将某些东西从 NS 土地转换为 CF 土地时,我不想改变所有权。ARC 将保持 NS 土地上的保留计数,并使 CF 土地中的对象保持活动状态,直到其 NS 土地对应部分被破坏。
这就是为什么我用ABRecordRef ABWhatIsThis= (__bridge ABRecordRef)
如果我将某些东西从 CF 土地转换为 NS 土地,我将使用 CFBridgingRelease。原因是一旦我得到一个指向 CFBridging 的 ARC 对象,我就不会让 CFBridging 保留这些东西。
但是,我仍然感到困惑。当我应该使用 CFBridgingRelease 时,是否有硬性规定?
我还注意到没有 CFBridging 这样的东西。只有 CFBridgingRelease 和 CFBridgingRetain。我想知道为什么不平衡。