Iphone 当我单击自定义UITableViewCell内的按钮时,执行错误访问
我用自定义TableViewCell构建了一个TableView,第一个自定义单元格有一个工具栏和一些工具栏按钮项,还有一个用于测试的简单按钮。 问题是:当我点击任何条形按钮项目或简单按钮时,我有一个EXC\u BAD\u访问权限 这是我构建tableview单元格的代码:Iphone 当我单击自定义UITableViewCell内的按钮时,执行错误访问,iphone,objective-c,uitableview,exc-bad-access,Iphone,Objective C,Uitableview,Exc Bad Access,我用自定义TableViewCell构建了一个TableView,第一个自定义单元格有一个工具栏和一些工具栏按钮项,还有一个用于测试的简单按钮。 问题是:当我点击任何条形按钮项目或简单按钮时,我有一个EXC\u BAD\u访问权限 这是我构建tableview单元格的代码: - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"taskCell";
if(indexPath.row != 0){
TaskCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"TaskCell" owner:nil options:nil];
for (UIView *view in views) {
if([view isKindOfClass:[UITableViewCell class]])
{
cell = (TaskCell*)view;
}
}
}
return cell;
}
else{
if (travelInfoCell == nil) {
NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"TravelInfo" owner:nil options:nil];
for (UIView *view in views) {
if([view isKindOfClass:[UITableViewCell class]])
{
travelInfoCell = (TravelInfo*)view;
}
}
}
travelInfoCell.selectionStyle = UITableViewCellSelectionStyleNone;
return travelInfoCell;
}
}
我计划将操作代码委托给TableViewController,但目前我甚至无法点击按钮iAction前面的断点
将代码写入TravelInfo.m,但该代码不起作用,并向我抛出EXC\u BAD\u访问权限:
- (IBAction)doAccepted:(id)sender {
NSLog(@"accepted");
//[delegate travelAccepted];
}
你有什么解决办法吗?这是你的问题:
travelInfoCell = (TravelInfo*)view;
您没有保留对视图的引用,因此视图变量的预期寿命是有限的。你需要保留一份推荐信。这样做:
travelInfoCell = [(TravelInfo*)view retain];
不要忘记在ViewDiUnload上释放单元格并将其置零正如nob1984所说,您可以在ViewDiUnload方法中保留视图并将其释放,也可以分配内存空间,以便在需要释放指针之前不释放指针。所有EXC_BAD_访问意味着您正在访问一个对象已终止的指针。您好,谢谢。我和你一样添加了保留,但a我仍然有同样的问题。仅供参考:我无法在cell自定义类中设置自定义单元格nib文件的出口,当tableview调用:-(UITableViewCell*)tableview:(UITableView*)tableview cellForRowAtIndexPath:(NSIndexPath*)indexPath:**由于未捕获的异常“NSUnknownKeyException”终止应用程序,原因:'[setValue:forUndefinedKey:]:该类不符合密钥btnReject的键值编码。我很难解析您试图说的内容。TravelInfo是通过同名nib加载的自定义单元格。您看到的异常向我表明,在该nib中,您试图在“文件所有者”上设置出口,但您可以在代码中看到所有者为“nil”.在nib中的表视图单元格中设置您试图设置的任何出口,而不是文件所有者。请原谅我的错误解释。因此,我意识到,在文件所有者为零之前,我无法在TravelInfo类中设置出口。但是,我应该如何在代码中分配所有者?TravelInfo不需要所有者。在TravelInfo xib中,只需设置输出到实际的UITableView单元格,并删除文件所有者上设置的所有输出。