【发布时间】:2013-03-18 15:31:54
【问题描述】:
这是我目前所做的:
基本上我在做桥接时有这两条规则
从 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。我想知道为什么不平衡。
【问题讨论】:
标签: objective-c xcode4.5