如何在XCode4中启用NSZombiesEnabled?我曾经使用这个参数来调试XCode3中的EXC_BAD_ACCESS.不确定在XCode4中的位置.
我是Objective-c和xcode的新手,我正在编写的应用程序正在收到臭名昭着的EXC_BAD_ACCESS错误.
几乎每个人都建议使用NSZombies开始解决问题.我想我有NSZombies正在工作,但xcode没有给我一个警告,当我的应用程序崩溃时,僵尸被消息.
在继续我的调试之前,我想运行一些代码,这些代码肯定会导致消息被发送到僵尸(解除分配的对象).
什么是简单的代码片段,其中消息被发送到解除分配的对象,导致NSZombies应该提醒我的情况?
实际上,之前我问了同样的问题,但我还没有办法解决它,所以我又来了.
我的情况:
我有一个UIPickerView带有2个相关组件,第二个或右侧组件中行的数量和内容随第一个或左侧组件中当前选定的行而变化,这是一个非常常见且有用的函数UIPickerView.
现在,如果我使用2个拇指将两个组件一起滚动,我的应用程序很容易崩溃,很快就会有以下信息:
*** Terminating app due to uncaught exception of class '_NSZombie_NSException'
libc++abi.dylib: terminate called throwing an exception
Run Code Online (Sandbox Code Playgroud)
具有讽刺意味的是,我无法调试它.
实际上,如果我在pickerView:didSelectRow:inComponent方法中添加一个断点,我甚至不能快速地将两个组件一起滚动,因为每次我只是将手指放在屏幕上它就会在断点处停止.
我只能猜测原因是当滚动第一个组件时,第二个组件中假定的行数不断变化,但同时,UIPickerView它要求第二个组件的标题和编号,然后崩溃.
但我还没有找到任何可用于判断组件是否正在滚动的方法.所以我找不到正确的时间来拒绝pickerView's delegate和dataSource第二个组件的请求.
有没有人遇到类似的情况?
谢谢你的帮助!我很感激!
在我的代码中,错误是关于typePicker,所以我删除了所有其他与之无关的代码typePicker.
这里,type它detailTypes是Core Data中的两个实体,并且称为detailsfrom type到to的多对多关系detailsTypes.
例如,如果类型是"国家",那么detailTypes它将是"美国","法国","中国"等.
因此typePicker,在第一个或第二个组件显示所有类型实体,第二个或右侧组件detailTypes根据第一个组件中当前选择的类型显示相应的实体.
并且两个组件的第一行typePicker始终为"无",以允许用户不选择特定类型,这就是代码中有许多"+1"的原因.
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView {
if (pickerView == self.typePicker)
return 2;
return 1; …Run Code Online (Sandbox Code Playgroud)