1

我正在使用 Xcode 4.5.2 来练习 iOS 编程。我的应用程序似乎编译得很好,但是当我执行 Product -> Analyze 时,我得到以下消息,这些消息在

在此处输入图像描述

如果有人可以向我解释这一点,我将不胜感激?

PS。__bridge除了编译器建议的单词并且我同意添加它之外,我有点了解大多数情况。

4

2 回答 2

3

你应该使用__bridge_transfer,而不是__bridge。您想将所有权转让给 ARC,因此它会为您清理它。不这样做会导致泄漏。

请参阅过渡到 ARC 发行说明中关于免费桥接的讨论。

根据 WWDC 2012 的说明,Apple 实际上建议CFBridgingRelease. 因此:

NSString *encodedString = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(...);
于 2013-01-12T22:21:43.403 回答
0

只要您仔细跟踪它并在适当的时候释放它,它就不是泄漏。Analyzer 只是提示,如果有人在外部需要它,函数应该返回自动释放的 ref,或者在函数内部释放它。

于 2013-01-12T22:27:50.567 回答