- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最近我正在修复某人的代码。有一个大类不会解除分配。您必须发布 5 或 6 个版本才能将其释放。
我仔细地翻遍了大类,最终找到了各种需要发布的东西。
这让我思考:必须有一些非常简单的方法来“查找”对象上的所有保留..我对吗?
那么,有没有一种简单的方法可以“找到对象上的所有保留”? XCode 或 Instruments 中是否有一个其他人都知道的按钮?
当你找不到这样的谜团时你会怎么做?
因此,在 iOS 世界中,如果有人知道“显示此对象上所有保留的来源” 按钮 - 谢谢!
附注请注意,没有泄漏,并且这个问题与泄漏完全无关。该对象只是“完全正确”不会释放。
<小时/>稍后..
Fabio 为这个问题提供了一个令人震惊的解决方案。用九个字来说,就是:
-(id)retain
{
NSLog(@"%@", [NSThread callStackSymbols]);
return ([super retain]);
}
这在许多情况下都非常有用,并会带来许多其他有用的东西。法比奥,你可能每年永远为我节省了两个人周的工作量。谢谢!
顺便说一句,如果您刚刚开始处理这个问题并与输出作斗争,我发现通常会有许多具有“UINib instantiateWithOwner:”特征的 block 。看起来这些将首先出现,重要的部分将随之而来。
最佳答案
Instruments 可以向您显示应用中任何 Obj-C 对象的每个 malloc、release 和保留的调用堆栈,无需更改代码。当您使用 ARC 时它可以工作,但 fabio 的解决方案不是这种情况。
这对于寻找那些神秘的遗迹非常有用 - 例如当一个对象在应该释放的时候却没有释放时。
方法如下:
简单! (大约)
关于iphone - 有办法到达 "find mystery retains"...吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587509/
假设我有一个具有以下属性的虚拟机 FQDN :trialinstance.westus.cloudapp.azure.com Public IP : XXX.XXX.XXX.XXX Private I
假设我有一个具有以下属性的虚拟机 FQDN :trialinstance.westus.cloudapp.azure.com Public IP : XXX.XXX.XXX.XXX Private I
在移植游戏时,我得出以下声明 Object o = new Object[]{"A","B"}; 真的很奇怪! 但是当我尝试对“String”进行同样的操作时,编译器会向我报告错误消息 String
作为一个更大项目的一部分,我一直在构建一个编程语言检测器,即代码片段的分类器。我的基线模型非常简单:将输入标记化并将片段编码为词袋,或者,在这种情况下,bag-of-tokens,并在这些特征之上制作
我忘记将附带的变量添加到 printf() 调用中。 printf() 如何知道我要打印什么? int successful = 0;//Flag printf("\nEnter a number t
我正在集成 HTML 编辑器 CKEditor在我的 Cocoa 应用程序中使用 WebView。 到目前为止,它按预期工作,除了一件事:如果我打开 NSColorPanel在应用程序的任何其他位置并
我正在开发一款适用于 Android 的应用程序。在我的代码中有以下几行: if (shape != null && !created && isTap(touchDown, event)) {
我正在尝试对指向某个类的智能指针 vector 进行排序。我使用结构作为 std::sort 的第三个参数与 operator() : struct PhraseSmartPtrParseCreati
我在使用自动引用计数的 iOS 4.3 和 iOS 5 中工作。我在我的界面中声明了一个 NSDate 对象: NSDate *fingerprintsDate; 稍后,我设置了 NSDate - 使
最近我正在修复某人的代码。有一个大类不会解除分配。您必须发布 5 或 6 个版本才能将其释放。 我仔细地翻遍了大类,最终找到了各种需要发布的东西。 这让我思考:必须有一些非常简单的方法来“查找”对象上
这让我发疯。我有一个 UITableView,复制并粘贴了它。第二个在第一个单元格之前没有顶部填充,第一个有。堆栈中也没有神秘的 View 。到底是怎么回事?我要疯了,不想删除 UITableView
我遇到一个问题,IE 9(可能还有其他版本)无法正确显示我的水平列表。如您所见,最右边的元素被向下推了一点。 HTML: Lorem ipsum dolor sit ame
我已经为 .它按预期呈现,除了 svg 元素底部边缘的水平线。 svg来源是 你可以在这里看到错误的水平线 Codepen (它在底部,蓝色...)。 我希望线路消失
我从 Crashlytics 得到的报告是 Crashed: com.apple.main-thread SIGABRT ABORT at 0x357fedf0 我如何缩小这个谜团崩溃的范围? 此外,
我在 Git 中看到一个对我来说似乎非常神秘的行为。我保留了来自 Github 的 Linux 存储库的克隆。在本地玩 Git。明确地说,我在这个存储库中没有做太多事情:我获取更改、更新 master
关于 我有一个 android 应用程序,它有 2 个 Activity 。 Activity A 产生 Activity B, Activity B 访问另一个模块中的房间数据库。我使用 Koin
这个 Common Lisp 函数使用极其简单的幼儿园级算法和一些“案例”测试来简单地计算墙壁线框边缘的四个顶点,似乎负责为每个渲染帧动态分配 196608 字节; SBCL 的分析器告诉我,就 co
我正在解决“情书之谜”问题,可能我的逻辑是正确的,但它显示了时间问题问题是 Question here .我的解决方案如下。它包含两个函数,一个是theLoveLetterMystery(String
我正在通过 OpenGL 在伪二维 Canvas 中显示四边形。为此,我通过以下方式使用正交投影: gl.glMatrixMode(GL10.GL_PROJECTION); gl.glLoadIden
我的程序似乎总是会产生荒谬的错误。请给我指路。下面的代码段删掉了所有不相关的部分。谢谢。 代码段A部分似乎没有正确初始化数组,如何调试?代码段的 B 部分总是崩溃,我是否遗漏了什么? typedef
我是一名优秀的程序员,十分优秀!