我如何设置NSZombieEnabled和CFZombieLevel为我的可执行文件在Xcode 4?
当前回答
在Xcode 7中
⌘<
或从产品>方案菜单中选择编辑方案
在“诊断”选项卡中选择“启用僵尸对象”
如果您更喜欢.xcconfig文件,可以阅读本文https://therealbnut.wordpress.com/2012/01/01/setting-xcode-4-0-environment-variables-from-a-script/
其他回答
在Xcode 4.2中
项目名称/编辑方案/诊断/ 启用僵尸对象复选框 你完成
我觉得这个选择更方便:
点击“运行按钮下拉菜单” 从列表中选择配置文件 程序“仪器”应该打开,你也可以选择僵尸 现在您可以与应用程序交互并尝试引起错误 一旦错误发生,你就会得到一个提示,提示你的对象何时被释放并因此被释放。
一旦僵尸被检测到,你就会得到一个整洁的“僵尸堆栈”,它会告诉你有问题的对象是什么时候被分配的,在哪里被保留或释放:
Event Type RefCt Responsible Caller
Malloc 1 -[MyViewController loadData:]
Retain 2 -[MyDataManager initWithBaseURL:]
Release 1 -[MyDataManager initWithBaseURL:]
Release 0 -[MyViewController loadData:]
Zombie -1 -[MyService prepareURLReuqest]
与使用Xcode方案的诊断选项卡相比,优势如下:
如果您忘记取消诊断选项卡中的选项,将没有对象从内存中释放。 您将得到一个更详细的堆栈,其中显示了在哪些方法中分配/释放或保留了损坏的对象。
Jano的答案是找到它最简单的方法。另一种方法是如果你点击方案下拉栏->编辑方案->参数选项卡,然后在环境变量列中添加NSZombieEnabled,在值列中添加YES…
在Xcode 7中
⌘<
或从产品>方案菜单中选择编辑方案
在“诊断”选项卡中选择“启用僵尸对象”
如果您更喜欢.xcconfig文件,可以阅读本文https://therealbnut.wordpress.com/2012/01/01/setting-xcode-4-0-environment-variables-from-a-script/
Cocoa提供了一个很酷的特性,它极大地增强了调试这种情况的能力。它是一个叫做NSZombieEnabled的环境变量,观看这个视频来解释如何在objective-C中设置NSZombieEnabled
推荐文章
- 如何停止不必要的UIButton动画标题变化?
- 是否有可能更新一个本地化的故事板的字符串?
- 如何在我的iPhone应用程序中使用NSError ?
- Xcode iOS项目只显示“我的Mac 64位”,但不显示模拟器或设备
- Objective-C中的自动引用计数不能防止或减少什么样的泄漏?
- 如何精确地以毫秒为单位记录方法的执行时间?
- 如何解散ViewController在Swift?
- 保存字符串到NSUserDefaults?
- 无法在Mac OS X 10.9上安装Lxml
- Xcode“构建和存档”菜单项被禁用
- 查看保存的NSUserDefaults的简单方法?
- 如何添加UITableViewCell之间的间距
- 在为设备编译时,Apple Mach-O连接器错误
- SourceKitService终止
- 理解设置