コピーで作成したアレイを解放する適切な方法は何ですか? NSMutableArray を引数として取る関数 createDoc があります。コピーがメモリを割り当てると信じているため、メモリリークが発生します。
doc = [getDoc createDoc: [[array subarrayWithRange:NSMakeRange(2, 5)] copy] ];
コピーで作成したアレイを解放する適切な方法は何ですか? NSMutableArray を引数として取る関数 createDoc があります。コピーがメモリを割り当てると信じているため、メモリリークが発生します。
doc = [getDoc createDoc: [[array subarrayWithRange:NSMakeRange(2, 5)] copy] ];
これを試して
doc = [getDoc createDoc: [[[array subarrayWithRange:NSMakeRange(2, 5)] copy] autorelease]];
またはさらに良いこれ
NSArray *subArray = [[array subarrayWithRange:NSMakeRange(2, 5)] copy]];
doc = [getDoc createDoc:subArray];
[subArray release];
あなたはコピーをリリースします。それで全部です。
NSArray * copy = [[array subarrayWithRange:NSMakeRange(2, 5)] copy];
doc = [getDoc createDoc:copy];
[copy release];
しかし - それがパラメータが必要とするものであれば、あなたが望むのは可変コピーです:
NSMutableArray * copy = [[array subarrayWithRange:NSMakeRange(2, 5)] mutableCopy];
^^^^^^^ ^^^^^^^^^^^
doc = [getDoc createDoc:copy];
[copy release];
ほとんどの場合、オブジェクトgetDoc
にそのmutableCopy
.