iPhone:这段代码中有内存泄漏吗?

iPhone:这段代码中有内存泄漏吗?,iphone,objective-c,ipad,Iphone,Objective C,Ipad,我在代码中使用了两个对象,即pagesUrl和pagesXmlParser,在使用它们之后,我将释放这两个对象。它运行得很好,但是它在内存泄漏中显示它们。当我试图验证它时,我检查了这些对象的引用计数,即使在对象被释放后,它也显示为“1”。在下面的代码中,有谁能帮助我消除这个漏洞,以及如何释放这些特定的对象吗 -(void)loadPagesForChapter:(NSString *)path{ // have to parse the pages xml for this chapter

我在代码中使用了两个对象,即pagesUrl和pagesXmlParser,在使用它们之后,我将释放这两个对象。它运行得很好,但是它在内存泄漏中显示它们。当我试图验证它时,我检查了这些对象的引用计数,即使在对象被释放后,它也显示为“1”。在下面的代码中,有谁能帮助我消除这个漏洞,以及如何释放这些特定的对象吗

-(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]);
}

提前感谢您的帮助。

忽略保留计数

对象的保留计数大于0并不意味着它也不会自动删除:)

我觉得你的代码很好


如果真的是泄漏,我会查看PageLoader的实现,看看NSXMLParserDelegate方法中是否存在阻止释放解析器的保留(这也会导致URL泄漏)。

忽略保留计数

对象的保留计数大于0并不意味着它也不会自动删除:)

我觉得你的代码很好


如果真的是泄漏,我会查看PageLoader的实现,看看NSXMLParserDelegate方法中是否存在阻止释放解析器的保留(这也会导致URL泄漏).

设备或模拟器中存在泄漏-如果在模拟器中存在泄漏,请在设备上进行测试-模拟器有时会给出不正确的结果!设备或模拟器中存在泄漏-如果在模拟器中存在泄漏,请在设备上进行测试-模拟器有时会给出不正确的结果!