1

以下は私のコード スニペットで、メモリ リークの問題が発生しています。 ここに画像の説明を入力

これは警告番号 3 です。

オブジェクトがリークしました: オブジェクトが割り当てられ、'strRespondData' に格納されましたが、名前 ('httpConnection:postStr:') が 'copy'、'mutableCopy'、'alloc'、または 'new' で始まらないメソッドから返されました。これは、Cocoa のメモリ管理ガイドに記載されている命名規則に違反しています。

*私のコードはARC対応です。

4

3 に答える 3

2

自動リリースメッセージを使用できます。

NSString *strRespondData = [[[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding] autorelease];

ここで説明を読むことができます

ARCを使用している場合は、心配する必要はありません。ARCがこれを処理します。

于 2013-03-06T08:34:50.677 に答える
1

警告メッセージは、メソッドの名前がメモリ管理ガイドラインの命名規則に違反していることを示しています

> 'copy'、'mutableCopy'、'alloc'、'new' で始まっていません

あなたのコードはARCの下で有効です

于 2013-03-06T11:07:24.160 に答える
1

この行を解放します

NSString *strRespondData = [[[NSString alloc] initWithData:responseData encoding:NSASCIIStringEncoding]

この変換で試してみてください。

NSString* strRespondData = [NSString stringWithUTF8String:[responseData bytes]];
于 2013-03-06T08:49:45.287 に答える