1

我已经对这个类进行了子UITableViewCell类化,一个有效,另一个无效,我不知道为什么。

这是引发错误的函数:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath object:(PFObject *)object {

    NSString *type = [object objectForKey:@"type"];

    static NSString *CellIdentifier1 = @"Cell1";
    static NSString *CellIdentifier2 = @"Cell2";

    if ([type isEqualToString:@"quote"]) {

        QuoteCell *cell = (QuoteCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier1];

        if (cell == nil) {
            cell = [[QuoteCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier1];
        }
        cell.contentText.text = [object objectForKey:self.textKey];
        NSDate *date = object.createdAt;
        cell.datetimeLabel.text = [NSDate stringForDisplayFromDate:date];
        return cell;
    }
    else if([type isEqualToString:@"photo"])
    {
        TestCell *cell = (TestCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier2];

        if (cell == nil) {
            cell = [[TestCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier2];
        }
        return cell;
    }

    return nil;

}

由于我无法弄清楚的原因,该类的子类之一UITableViewCell说它TestCell是 aUIView而不是 a UITableViewCell?我将这两个类从UITableViewCell我认为的完全相同的类中分出来,但是QuoteCell工作并说它是 aUITableViewCellTestCell不是,并说它是 a UIView

这是错误 -

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

有任何想法吗?

在这个问题上被困了几个小时后,我在发布后 10 分钟就弄清楚了。这与我创建 UITableViewCells 的方式有关。我正在创建扩展 UITableViewCell 的类,并且在 TestCell.m initWithStyle 函数中我从 MainBundle 中获取了 nibArray 但是因为我在单元格中有一个 UIImageView 单元格本身的索引实际上发生了变化,所以我不得不更改索引以找到笔尖在单元格本身的数组中。感谢所有已经回复的人。

4

1 回答 1

0

例外-[UIView setTableViewStyle:]不是UITableViewCell因为setTableViewStyle:是一种UITableView方法。所以你可能想看看你是如何创建 tableView 的。

于 2013-01-10T08:57:30.193 回答