0

可能我的代码在以下方法中崩溃,因为 getData() 仅在此方法结束时被调用一次。

此外 didSelectRowAtIndexPath 代码如下:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)newIndexPath
{
    [tableView deselectRowAtIndexPath:newIndexPath animated:YES];

    // Set 
    [[GlobalObject obj] setData:[(CustomCell*)[tableView cellForRowAtIndexPath:newIndexPath] getData]];
}

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[CustomCell getData]:无法识别的选择器已发送到实例

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{   
    if(indexPath.section == 0)
    {
        ...
        return cell;
    }
    else
    {
        // Create a button table view cell
        CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"CustomCell"];
        if (cell == nil) 
        {           
            cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CustomCell"] autorelease];
        }

         [cell setButton:[ ...];

        return cell;
    }
}

如上所示,单元格是自动释放的,这可能是应用程序崩溃的原因。Cell 进入自动释放池,然后将 getData 发送到无法识别的选择器。我该如何解决这个问题?

4

1 回答 1

0

CustomCell 没有名为 getData 的方法。
避免内联,一个接一个地编写语句。这有助于调试。然后,您可以轻松设置断点。

于 2012-12-12T11:54:44.847 回答