3

私は次の機能を持っています:

- (NSString *)urlEncodedValue {
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(
                   kCFAllocatorDefault, 
                   (CFStringRef)self, 
                   NULL, 
                   CFSTR("?=&+/\r\n"), 
                   kCFStringEncodingUTF8
);

return [result autorelease];

}

Clang から次のような苦情が寄せられるのはなぜですか?

  • 1 関数 'CFURLCreateStringByAddingPercentEscapes' への呼び出しは、保持カウントが +1 の Core Foundation オブジェクトを返します (所有参照)
  • 2 オブジェクト送信 - 自動解放メッセージ
  • 3 所有参照として呼び出し元に返されるオブジェクト (呼び出し元に転送される単一保持カウント)
  • 4 オブジェクトのオーバーオートリリース: オブジェクトが送信されました -autorelease が、オブジェクトの保持カウントがゼロ (ローカルで表示可能) です

私の知る限り、これはメモリ管理とオブジェクトの所有権に関する Apple のガイドラインに準拠しています。オブジェクトを明示的に解放する必要がありますか? このエラーは、すべて同様の状況で、私のプロジェクトで 19 回発生しました。私は何を間違っていますか?

4

1 に答える 1

3

私は自分の質問に対する答えを見つけました。誰かがこの問題に遭遇した場合は、ここに投稿してください。私はchecker-0.198を使用していましたが、checker-0.204はそのような問題を報告していません。一時的な退行だったようです。

于 2009-05-14T06:20:43.790 に答える