我已经对这个类进行了子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
工作并说它是 aUITableViewCell
而TestCell
不是,并说它是 a UIView
。
这是错误 -
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIView setTableViewStyle:]:无法识别的选择器发送到实例 0x96b7b70”
有任何想法吗?
在这个问题上被困了几个小时后,我在发布后 10 分钟就弄清楚了。这与我创建 UITableViewCells 的方式有关。我正在创建扩展 UITableViewCell 的类,并且在 TestCell.m initWithStyle 函数中我从 MainBundle 中获取了 nibArray 但是因为我在单元格中有一个 UIImageView 单元格本身的索引实际上发生了变化,所以我不得不更改索引以找到笔尖在单元格本身的数组中。感谢所有已经回复的人。