我已经完成了与SeismicXML示例相同的xml解析。但现在它给了我内存泄漏问题。
当我用仪器测试SeismicXML时,它也会产生相同的内存泄漏。
在SeismicXML中,EarthQuake示例就在那里,它包含来自xml解析的所有字符串和数组。 SO'泄漏'仪器将所有这些字符串和数组显示为泄漏对象。
我花了很多时间来讨论这个问题。但我还没解决。如果有人解决了这个问题,请与我分享您的评论。
谢谢, Haresh。
答案 0 :(得分:0)
您可能需要下载,安装和使用CLANG检查工具来了解代码泄漏内存的原因。这个工具(已经为Leopard 10.5.x构建)有时可能无法提供正确的答案,但根据我的个人经验,它从未失败过。我强烈推荐它作为您的日常开发工具之一。
您可以从
下载http://clang.llvm.org/StaticAnalysis.html
用法非常简单。看看
http://clang.llvm.org/StaticAnalysisUsage.html#BasicUsage
实际上,您只需使用命令
构建Xcode项目scan-build -k -V xcodebuild
然后,使用在终端窗口中显示为输出的命令检查生成的输出HTML文件。这些文件将为您详细解释代码中出现问题的原因(而不仅仅是内存泄漏)。
亲切的问候
答案 1 :(得分:0)
好的,
我假设您正确安装了该工具,以便您可以从终端调用它。
使用它:
1)cd / your / project / path 2)scan-build -k -V xcodebuild
如果这不起作用,那么您没有正确安装该工具:至少您没有正确设置“路径”。
以下是如何设置c或tcsh shell的路径,假设您在/opt/checker-0.160中安装了该工具
设置mypath =(/ opt / checker-0.160) set path =($ mypath $ path)
3)如果命令正常工作,它会构建您的项目并在您的计算机上启动Web服务器。然后,它会为您提供可在计算机上连接的URL以读取结果。
如果命令无法启动Web服务器,它会告诉您html文件在特定目录中可用,并且您将获得路径。通常这个目录可以在/ tmp。
下找到只需转到此目录
cd / path / to / results / directory
然后
打开index.html
您将看到完整的报告。 最诚挚的问候。
答案 2 :(得分:0)
在初始化我的NSXMLParser之前,我设置了以下内容:
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:URL];
这会停止泄漏。