我用循环重复调用一个函数,循环在一个线程内运行。该线程有一个自动释放池。
我在该函数中有以下代码:
NSXMLDocument* undoXML;
NSData* undoData = [NSData dataWithContentsOfFile:undoFilePath];
undoXML = [[NSXMLDocument alloc] initWithData:undoData 选项:NSXMLDocumentTidyXML 错误:&err];NSData* 撤消数据2;
undoData2 = [undoXML XMLData];[undoData2 发布];
[撤消XML释放];
我得到以下奇怪的结果:
- 每次循环调用此函数时,我的程序都会泄漏内存。
- 当我将以下代码添加到函数时:
NSData* 撤消数据3;
undoData3 = [undoXML XMLData];
[undoData3 发布];
我的程序比以前泄漏了更多的内存。
我真的很困惑,我非常需要帮助弄清楚发生了什么。也许我的自动释放池工作不正常?为什么会这样?