0

我正在以下列方式加载SELECT查询结果,tableView但我收到一条警告,抱怨指针类型不兼容。

我下面的代码有什么错误?

提前感谢您的建议

-(UITableView *)tableview : (UITableView *)tableview cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"cell";
    UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
        cell = [[UITableViewCell alloc] initWithStyle:(UITableViewCellStyleDefault) reuseIdentifier:CellIdentifier];
       NSInteger locationRow = indexPath.row;
        cell.textLabel.text = [appDelegate.nameArray objectAtIndex:locationRow];
     return cell; // error comes here


}
4

5 回答 5

2

你的函数的返回类型是错误的。它应该返回UITableViewCell*而不是UITableView*

-(UITableViewCell*)tableview:(UITableView *)tableview cellForRowAtIndexPath: (NSIndexPath *)indexPath;

希望有帮助!

于 2013-09-12T12:27:53.787 回答
1

你给出的返回类型是UITableView预期的UITableViewCell,所以你必须改变如下

-(UITableViewCell *)tableview : (UITableView *)tableview cellForRowAtIndexPath: (NSIndexPath *)indexPath
{
    静态 NSString *CellIdentifier = @"cell";
    UITableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier];
    如果(单元格 == 零)
        单元格 = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    NSInteger locationRow = indexPath.row;
    cell.textLabel.text = [appDelegate.nameArray objectAtIndex:locationRow];
    返回单元格;
}
于 2013-09-12T12:28:54.377 回答
0

您需要检查您的退货类型。因为您正在返回UITableViewCell,但您的返回类型是UITableView. 有关更多信息,请参阅代码中的这一行。

-(UITableViewCell *)tableview : (UITableView *)tableview cellForRowAtIndexPath: (NSIndexPath *)indexPath
于 2013-09-12T12:29:28.173 回答
0

您可以更轻松地做到这一点,不要在 cellForRowAtIndexPath 方法中创建单元格,而是使用以下代码:

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.table registerNib:[UINib nibWithNibName:@"MyCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MyCellIdentifier"];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"MyCellIdentifier";
    MyCell *cell = (MyCell*)[self.table dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];

    // Setup cell here

    return cell;
}
于 2013-09-12T12:32:44.160 回答
0

我仍然收到此警告。我正在使用 HVtable 作为第三方工具

-(TableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath isExpanded:(BOOL)isExpanded {

static NSString *CellIdentifier = @"MYCELLUP";

UpcomingTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.selectionStyle = UITableViewCellSelectionStyleNone;


NSArray *cellSubs = cell.contentView.subviews;
if (isExpanded){
    [self tableView:tbView expandCell:cell withIndexPath:indexPath];
}
else{
    [self removeExpendedContent:cellSubs];

}

 if(ary_up_trp_typ.count >= 1){

    cell.img_blk_plane.image = [UIImage imageNamed:@"page4_09.png"];
    cell.img_day.image = [UIImage imageNamed:@"page4_09.png"];


    cell.lbl_up_trp_typ.text = [ary_up_trp_typ objectAtIndex:indexPath.row];
    cell.lbl_up_dt_to_frm.text = [ary_up_dt_to_frm objectAtIndex:indexPath.row];
    cell.lbl_up_ct_st.text = [ary_up_ct_st objectAtIndex:indexPath.row];
    cell.lbl_up_day.text = [ary_up_day objectAtIndex:indexPath.row];

}

return cell;

}

于 2015-07-03T04:29:16.290 回答