43、调试指南:解决常见开发难题

调试指南:解决常见开发难题

1. 内存重用与 NSZombie

在开发过程中,有时会遇到对象不响应 objectAtIndex: 选择器的错误,而非 EXC_BAD_ACCESS 错误。这可能意味着之前使用的内存被应用程序中的另一个对象重用了。这种因内存重用导致的不可预测错误被称为 heisenbug ,类似于海森堡不确定性原理,是最难追踪的错误之一。

为了解决这类问题,可以启用 NSZombie 。启用后,系统不会释放已释放对象的内存,而是将其转换为 zombie 对象。这些 zombie 对象是有效的,但它们不会像普通对象那样响应消息,而是会报告你向它们发送消息的事实。

启用 NSZombie 的步骤如下:
1. 停止正在运行的应用程序。
2. 在 Groups & Files 面板中,找到 Executables
3. 点击其旁边的展开三角形,显示名为 DebugMe 的项。
4. 双击该项打开一个新窗口,然后点击 Arguments 选项卡。
5. 在窗口左下角点击加号按钮,添加一行到表格中。
6. 双击 Name 列的行,将变量名改为 NSZombieEnabled
7. 双击 Value

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值