UITableView多项选择

时间:2011-01-20 12:06:00

标签: iphone uitableview

我正在使用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];

}

非常感谢!

2 个答案:

答案 0 :(得分:0)

使用NSZombiesEnabled查找问题原因,并在调试器中查看。

转到XCode - >项目 - >编辑活动可执行文件“YourProjectName” - >参数选项卡 - >转到'变量设置在环境中' - >添加变量“NSZombiesEnabled”并将其值设置为“YES”,并且不要忘记选中复选标记。

然后调试代码并在崩溃时查看调试器中出现此错误的原因。

答案 1 :(得分:0)

我在调试器中收到了这条消息:

GDB:节目收到信号:“SIGABRT”。

有时这个:

GDB:程序收到信号:“EXC_BAD_ACCESS”。

每次调试时,这两个消息似乎都有所不同。这是我第一次使用NSZombiesEnabled。你觉得这有什么不对吗?