|
|
1
47
我发现追踪额外版本的最佳方法是使用 NSZombie已启用 Xcode中受影响的可执行文件的环境变量。要快速了解如何使用它,请查看 this CocoaDev wiki page (除了这个页面,苹果公司还记录了一些在Xcode中调试代码的令人难以置信的晦涩但有用的技巧,其中一些技巧已经帮了我很多次。我建议查看一下 this Technical Note developer.apple.com上的链接跳转到Cocoa的Foundation框架部分)。 编辑: 你通常可以在Xcode调试器中跟踪违规对象,但如果你使用Instruments来帮助你,通常会容易得多。从Xcode中,选择 Run → 从性能工具开始→ 对象分配 还有一个 related SO question here . |
|
|
2
39
|
|
|
3
13
除了奎恩·泰勒的回答,我只想补充一下我的经验。
我尝试了奎因在回答中建议的所有方法,但仍然无法找出确切的原因。 我将NSZombieEnabled=YES,NSStackLogging=YES,运行命令shell malloc_history来找出原因,但仍然没有成功。它总是指出我将数据保存到核心数据对象中的位置,事实上,我已经检查了那里的过度发布的对象数千次,没有什么奇怪的。
最后的救援:我试图回到从核心数据中提取对象的视图,并向所有这些对象发送保留消息,并注意到这些更改。它解决了问题!!! 所以,我发现我没能留住一个,这正是原因所在。只是想分享我的经验,这样你的应用程序就有了另一个拯救。 |
|
|
4
11
|
|
5
8
|
|
|
6
4
就在坠机之后。堆栈顶部的地址是罪犯的地址
|
|
|
7
4
|
|
|
8
3
这就是Xcode中Breakpoints窗口中malloc_error_break断点的样子。 需要勾选复选框才能使其工作。 alt text http://www.martijnthe.nl/wp-content/uploads/2009/08/Afbeelding-1.png |
|
|
9
2
我也遇到了同样的问题,发现我在打电话
|
|
|
10
0
建议不要让您创建的对象
|
|
|
11
0
为了发现这类内存和指针问题,您需要在运行时内存错误检查器上运行代码,例如 Valgrind 瓦尔格兰德 can work on OSX (尽管它说它“不受支持、不完整、有缺陷”),经过一点黑客攻击,有人让它开始工作 iPhone SDK executables . 更好的是,你可以尝试乐器,这是XCode的一部分。有一个运行它的教程 here . |
|
|
12
0
如果
解决此错误的最佳方法是运行
仪器
随着
|
|
|
mikko · SwiftUI如何在不同堆栈中实现同一视图的平滑动画 11 月前 |
|
|
routern · 如何组合contextMenu和圆角矩形? 11 月前 |
|
|
DevHome98 · 3D触摸不适用于设备swift 1 年前 |
|
|
dunoiww · 从全屏返回时如何触发onAppear 2 年前 |
|
|
Community wiki · iPhone上ivar的继承问题 2 年前 |
|
|
Community wiki · 查找iOS日历 2 年前 |
|
|
Community wiki · 有效的IPhone编程技术[关闭] 2 年前 |