コードでpagesUrlとpagesXmlParserという2つのオブジェクトを使用していますが、使用後にこれら2つのオブジェクトを解放しています。その実行中の井戸がメモリリークでそれらを示しています。私はそれを検証しようとしたとき、私はそれらのオブジェクトの参照カウントをチェックし、そのオブジェクトが解放された後でも '1'を表示しています。どのようにしてそのリークを削除するのか、そしてその特定のオブジェクトを次のコードでどのように解放するのかを助けてくれます。iPhone:このコードのメモリリーク?
-(void)loadPagesForChapter:(NSString *)path{
// have to parse the pages xml for this chapter
NSURL *pagesUrl = [[NSURL alloc] initFileURLWithPath:[self pagesXmlPath:path]];
NSXMLParser *pagesXmlParser = [[NSXMLParser alloc] initWithContentsOfURL:pagesUrl];
PagesAccumulator *pageLoader = [[PagesAccumulator alloc] init];
pagesXmlParser.delegate = pageLoader;
[pagesXmlParser parse];
// parsing pages done
// get the pages array
self.arrayOfPages = pageLoader.arrayOfPages;
[pageLoader release];
[pagesXmlParser release];
[pagesUrl release];
NSLog(@"pagesurl retain count is:%d",[pagesUrl retainCount]);
NSLog(@"pagesxmlparser retain count is:%d",[pagesXmlParser retainCount]);
}
ありがとうございました。
デバイスまたはシミュレータのリーク - シミュレータのリークがデバイス上でテストされている - シミュレータが間違った結果を示すことがあります。 – deanWombourne