如果条件,cellForRowAtIndexPath不会返回一个单元格

时间:2016-07-05 02:04:26

标签: ios objective-c uitableview

我尝试按日期标题对表格进行排序,并且已经连续几天这样做,但我的tableview似乎没有返回cell。但是,如果我删除if(zrrot < [mEvents count] ) condition,它将返回一个单元格。这很奇怪。

我无法将indexPath.row放在此处[cell setEvent:[mEvents objectAtIndex: ]];,因为它不会根据标题对数据进行排序。

(该应用程序是一个voip应用程序)

这是我的代码:

NSUInteger zzrot = 0;

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

RecentsCell *cell = (RecentsCell*)[_tableView dequeueReusableCellWithIdentifier: @"RecentsCell"];

if (cell == nil) {
    cell = [[[NSBundle mainBundle] loadNibNamed:@"RecentsCell" owner:self options:nil] lastObject];
}


if([[myArray objectAtIndex:indexPath.section] isEqual: finalArray[indexPath.section][indexPath.row]])
{
    if(zrrot < [mEvents count] ){           
        @synchronized(mEvents){
            [cell setEvent:[mEvents objectAtIndex: zzrot]];
            zrrot++;
        }
    }
    return cell;
}

else{
    NSLog(@"Do nothing");
    //do nothing
    return cell;
    } 
 }

这里是setEvent:

-(void)setEvent: (NgnHistoryEvent*)event{    

        labelType.text = event.remoteParty;
        labelDisplayName.text = event.remotePartyDisplayName;

        labelDate.text = [[NgnDateTimeUtils chatDate] stringFromDate:
                          [NSDate dateWithTimeIntervalSince1970: event.start]];
    }
}

0 个答案:

没有答案