は、ここでメモリリークがあると考えて保持して、誰もがこれで間違って何も見えませんか?私はこのコードを書いていないので、Cの呼び出しに慣れていません。 docsからコールは、私はARCとXcodeに私のプロジェクトを変換していたカウント
- (NSString*) URLEscaped
{
NSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
NULL,
(CFStringRef)self,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8);
return encodedString;
}
だから私はその後、ここに自動解放を使用しても大丈夫ですか? – TheLearner
はい、返されたオブジェクトの 'autorelease'はうまくいくはずです。 – mit3z
ARCで '-autorelease'を使うことができないことを除けば、ARCはそのキャストを好まないでしょう。 'encodedString'を' NSString * 'の代わりに' CFStringRef'として宣言し、 'return CFBridgingRelease(encodedString);'を実行する必要があります。ブリッジリリースは、オブジェクトの所有権をARCに渡しながら、Core Foundationの "Create"のバランスをとります。 –