ios – 如何在objective-cXcode中找到阻止dealloc的无用引用?

ios – 如何在objective-cXcode中找到阻止dealloc的无用引用?,第1张

概述我在iOS应用程序中遇到问题,经过一段时间后,对象不会被解除分配.我怀疑这是因为还有一个参考.我正在使用ARC. 我想找出创建引用的位置.然后我将能够告诉它应该在哪里为NULL,或者它应该是一个弱引用. 我想象的可能的解决方案: 如果我可以为每个修改引用计数(即保留计数)的地方设置断点,那么我将很快找到问题.我只是不知道如何设置这样一个断点.也许在ARC之前的时候,这可以通过在retain和rel 我在iOS应用程序中遇到问题,经过一段时间后,对象不会被解除分配.我怀疑这是因为还有一个参考.我正在使用ARC.

我想找出创建引用的位置.然后我将能够告诉它应该在哪里为NulL,或者它应该是一个弱引用.

我想象的可能的解决方案:

如果我可以为每个修改引用计数(即保留计数)的地方设置断点,那么我将很快找到问题.我只是不知道如何设置这样一个断点.也许在ARC之前的时候,这可以通过在retain和release中设置断点来完成,但我不知道如何使用ARC执行此 *** 作.

高度简化的示例代码:

我在我的一个课程中完成了这个,我知道在哪里:

// Shouldbedeallocated.m- (voID) dealloc {    NSLog(@"%s",__FUNCTION__); // this never shows up in output}

我怀疑我前段时间写过这样的代码,但我找不到它的位置:

// UnkNownSUSPECT.m@interface UnkNownSUSPECT ()@property (strong,reaDWrite) ID referenceWhichIsNeverNeeded;@end- (voID) someMethod:(Shouldbedeallocated*)ref {    self.referenceWhichIsNeverNeeded = ref;    // The object pointed to by referenceWhichIsNeverNeeded will    // not be dealloc'ed unless the property gets overwritten.}
解决方法 您可以使用Instruments来分析内存分配.然后,您可以看到代码中的哪个位置正在分配它并更改保留计数.仪器还可以帮助您查找代码中存在内存泄漏的位置,即使使用ARC也是如此. 总结

以上是内存溢出为你收集整理的ios – 如何在objective-c / Xcode中找到阻止dealloc的无用引用?全部内容,希望文章能够帮你解决ios – 如何在objective-c / Xcode中找到阻止dealloc的无用引用?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1022231.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存