Iphone SDK - 自定义UITableViewCell笔尖的烦恼
我创建了自己的笔尖,并为它创建了类。我在界面构建器中将所有控件连接到类。当我运行它运行良好。唯一的问题是,当我sc着tableview它崩溃。任何想法的错误可能是什么?我一直试图解决这个问题一段时间无济于事。它给出了一个EXC_BAD_ACCESS,我不知道如何调试。Iphone SDK - 自定义UITableViewCell笔尖的烦恼
int cellType = [streamDataProvider cellTypeForIndex:indexPath.row];
if(cellType == HOP_GRAFITTI){
static NSString *CellIdentifier = @"HopGrafittiStreamCell";
HopGrafittiStreamCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"HopGrafittiStreamCell" owner:self options:nil];
cell = (HopGrafittiStreamCell *)[nib objectAtIndex:0];
[cell retain];
}
[cell.username setText: [streamDataProvider userNameForIndex:indexPath.row]];
[cell.venuename setText: [streamDataProvider venueNameForIndex:indexPath.row]];
[cell.grafittiText setText: [streamDataProvider grafittiForIndex:indexPath.row]];
return cell;
}
如果您再次需要它,可以通过设置符号断点来调试EXC_BAD_ACCESS错误。如果在调试模式下运行,调试器会在EXC_BAD_ACCESS点突破让您有机会来看看堆栈跟踪和工作是什么原因引起的问题:
- 打开调试窗口
- 打开断点窗口右上角(显示断点)
- 双击读取行“双击符号”
- 型objc_exception_throw然后按回车键
您可以将其永久保留在您的项目中,因为每次遇到EXC_BAD_ACCESS错误时它总是有帮助的。
希望这有助于
'EXC_BAD_ACCESS'不是一个Objective-C异常,它是一个*内核*异常 - 即该进程崩溃了。你可以在任何程序中得到它,无论它是否使用Obj-C运行时;一个普通的C程序会产生这样的崩溃。无论如何,这将使调试器跳闸;没有必要设置一个断点。而且,调试器对于在Objective-C应用程序中调试'EXC_BAD_ACCESS'并不是很有帮助,它通常指示发送给死对象的消息。在这些情况下,僵尸工具对追查物体错误死亡的原因更为有用。 – 2010-08-07 05:29:36
没关系 - 事实证明streamDataProvider有不是保留和被垃圾收集内部对象 – Fountainhop 2010-08-06 06:54:02
您可以用僵尸仪器仪表中调试这样的崩溃。 – 2010-08-06 07:45:35
垃圾收集? – taskinoor 2010-08-06 10:51:30