0

ARC を使用し、ARC 以外のライブラリ メソッドを呼び出すプログラムがあります。

非 ARC ライブラリ:

-(NSMutableData*) bar{
    return [[NSMutableData alloc] initWithLength:100];
}

ARC プログラム:

- (void)foo
{
    NSMutableData* data = [d bar];
}
// Data is leaked

自動解放されたオブジェクトを返すようにライブラリ メソッドを変更せずに、データの漏洩を回避することは可能ですか?

このライブラリを ARC 以外のコードで使用する場合、以前はデータに対して release を呼び出していたため、リークを回避していました。

4

1 に答える 1

2

どうですか

-(NSMutableData*) bar
{
    return [[[NSMutableData alloc] initWithLength:100] autorelease];
}
于 2013-04-23T20:25:36.407 に答える