2

を呼び出している場合、使い終わったら呼び出す[NSString cStringUsingEncoding:]必要がfree()ありますか?

4

2 に答える 2

4

いいえ、ドキュメントには非常に明確に記載されています。

返された C 文字列は、レシーバーが解放されるか、現在の自動解放プールが空になるまでのいずれか早い方まで有効であることが保証されます。getCString:maxLength:encoding:この時間を超えて C 文字列を保存する必要がある場合は、C 文字列をコピーするか、使用する必要があります。

于 2012-06-13T11:00:39.497 に答える
0

cStringUsingEncoding は、変換された文字列を指定されたエンコーディングにメモリを割り当てていると思います。そのため、自動解放プールを使用していない場合、このメモリは決して解放されません。

于 2012-06-13T11:01:25.647 に答える