Xcode 4.5.2 を使用して iOS プログラミングを練習しています。私のアプリは問題なくコンパイルされているようですが、Product -> Analyze を実行すると、次のメッセージが表示されます。
誰かが私にこれを説明していただければ幸いです。
PS。コンパイラによって提案された単語を除いて、それが何をするのかをちょっと理解していて、__bridge
それを追加することに同意しました。
Xcode 4.5.2 を使用して iOS プログラミングを練習しています。私のアプリは問題なくコンパイルされているようですが、Product -> Analyze を実行すると、次のメッセージが表示されます。
誰かが私にこれを説明していただければ幸いです。
PS。コンパイラによって提案された単語を除いて、それが何をするのかをちょっと理解していて、__bridge
それを追加することに同意しました。
__bridge_transfer
ではなく、を使用する必要があります__bridge
。所有権を ARC に譲渡したいので、ARC がクリーンアップします。そうしないと漏れの原因になります。
ARC リリース ノートへの移行で、無料のブリッジングに関する説明を参照してください。
WWDC 2012 のメモによると、Apple は実際にCFBridgingRelease
. したがって:
NSString *encodedString = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(...);
注意深く追跡し、適切なタイミングでリリースする限り、リークではありません。アナライザーは、関数が外部で必要な場合は自動解放された参照を返すか、関数内で解放する必要があるというヒントを作成します。