首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么仪器报告泄漏,而它的参考计数确实为零

为什么仪器报告泄漏,而它的参考计数确实为零
EN

Stack Overflow用户
提问于 2010-12-19 01:43:56
回答 3查看 648关注 0票数 2

我是新手我正在使用工具,到目前为止,它对我有很大的帮助,但我现在很困惑,因为它向我报告了一个内存泄漏,而它泄露的块历史记录显示,该内存的引用计数最终变成了0。这是什么意思?

我真的很尴尬,我不能在这里发布一张图片...所以我必须用文字来描述它。希望这对你来说足够清楚:

事件类型|| RefCt ||责任库||责任调用者

马洛克预测数据||1%预测数据|| MyWeather预测数据||MyWeather预测数据||+预测数据||+预测数据parseSingleForecastWithXMLElement:

自动发布||自动发布数据|| MyWeather数据|自动发布数据||+预测数据parseSingleForecastWithXMLElement:

保留预测数据||2 MyWeather数据||parseWithData数据||+预测数据parseWithData:

发布版本||1个版本:版本||基金会版本:版本:版本|| +NSAutoreleasePool:

保留对目标的支持||2:目标目标||基金会:目标:目标目标|| +NSThread initWithTarget:选择器:object:

发布日期||1个月:月供日||基金会月日月日|月日日|| +NSString比较:选项:

发布版本||0版本*|| MyWeather *||+根视图控制器dealloc

任何帮助都会很感谢~

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-21 14:47:23

这是由于在forecastData的释放过程中缺少超级释放,导致forecastData的部分内存永远不会被释放,而forecastData的保留计数却变成了零。不管怎样,谢谢你们。

票数 4
EN

Stack Overflow用户

发布于 2010-12-19 03:14:31

您没有提供太多的示例代码,所以它可以是任何东西。MyWeather的RefCount是0,但基础仍然是1,所以也许你在任何地方分配了一个NSSting,但从未发布过?

顺便说一句。我永远不会分配-init一个字符串,而是直接设置文本,让内存管理来完成剩下的工作。我不知道为什么,但我认为这是一个小错误。有时,如果我尝试这样的操作,我会得到奇怪的错误:

代码语言:javascript
复制
NSString *str = [[NSString alloc] initWithString:@"some Text"];
myLabel.text = str;
[str release];

myLabel应该保留它,但是它没有。如果我尝试release它,我会得到一个错误。(如果不是,就会泄漏)

如果我使用

代码语言:javascript
复制
NSString *str = @"some Text";
myLabel.text = str;

它工作得很好,没有错误,没有泄漏。

票数 0
EN

Stack Overflow用户

发布于 2010-12-19 03:47:06

你在这个设备上试过了吗?有时您可以看到出现的泄漏并不是真正的泄漏。

另一个原因可能是您启用了NSZombie,这意味着对象不会真正被释放。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4479245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档