我真的在泄露记忆吗?

Mel*_*Mel 3 iphone memory-management objective-c

在Xcode中,我运行了我用漏洞仪器编写的程序

它表示泄漏被发现,泄漏的总字节数不断增加.

我看看泄漏的物体,似乎没有一个出现在我的程序中.

例如QuartzCore OpenGLES libLLVMContainer.dyl libCoreVMClient.dylib libGFXShared.dylib

我的错是程序泄漏内存还是苹果写的坏代码应该是预期的?

bbu*_*bum 10

如果你真的在寻找它们(这是我日常工作的一部分),Apple的框架中总会有一两个漏洞.但通常没有什么严重的,也没有相对普通/标准代码中发生的泄漏.

第一步是使用Build and Analyze对代码进行基本的健全性检查.它会捕获许多潜在的泄漏,但不是全部.

然后使用仪器.当您在Apple库中发现泄漏时,请查看分配的堆栈跟踪.具体来说,查找代码中的最低帧.这通常是泄漏的地方.

这样想吧; 您的代码调用Apple框架,可以调用其他Apple库和框架.当Apple代码返回时,它会将一块内存交还给你.如果您没有正确管理内存,可能会产生泄漏.

  • 我还读到,模拟器中出现的泄漏与设备上显示的泄漏不同.所以我将切换到设备测试. (3认同)