我正在使用UITableView多项选择和sqlite3。 使用下面的代码,我可以显示多个选项,但是DB的保存机制有问题。
updatedID是一个NSInteger。
调试时,消息如下所示,就在---> self.updatedID = ct.contactID;
编程接收信号:“EXC_BAD_ACCESS”。
我的代码在这里出了什么问题?
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *theCell = [tableView cellForRowAtIndexPath:indexPath];
MyContacts *ct = (MyContacts *) [self.memberNoGroupArray objectAtIndex:indexPath.row];
self.updatedID = ct.contactID;
if (theCell.accessoryType == UITableViewCellAccessoryCheckmark)
{
DBAccess *updateDB = [[DBAccess alloc] init];
[updateDB updateGroupName:updatedID withGroupName:[NSString stringWithFormat:@"(no group)"]];
[updateDB release];
theCell.accessoryType = UITableViewCellAccessoryNone;
}
//if the cell doesn't have checkmark, give it a checkmark.
else if (theCell.accessoryType == UITableViewCellAccessoryNone)
{
DBAccess *updateDB = [[DBAccess alloc] init];
[updateDB updateGroupName:updatedID withGroupName:self.currentGroupString];
[updateDB release];
theCell.accessoryType = UITableViewCellAccessoryCheckmark;
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
非常感谢!
答案 0 :(得分:0)
使用NSZombiesEnabled查找问题原因,并在调试器中查看。
转到XCode - >项目 - >编辑活动可执行文件“YourProjectName” - >参数选项卡 - >转到'变量设置在环境中' - >添加变量“NSZombiesEnabled”并将其值设置为“YES”,并且不要忘记选中复选标记。
然后调试代码并在崩溃时查看调试器中出现此错误的原因。
答案 1 :(得分:0)
我在调试器中收到了这条消息:
GDB:节目收到信号:“SIGABRT”。
有时这个:
GDB:程序收到信号:“EXC_BAD_ACCESS”。
每次调试时,这两个消息似乎都有所不同。这是我第一次使用NSZombiesEnabled。你觉得这有什么不对吗?