Я просто выполняю обычную операцию: запросите данные с сервера и обновите tableview на reloadSections
, но я получаю много журналов сбоев. Если я позвоню reloadData
, все будет в порядке. Хотя я знаю, что reloadData
работает хорошо, кажется, что reloadSections
работает более эффективно.
Есть ли у кого-нибудь идеи?Вызов UITableView reloadSections метод сбоя
Получить данные с сервера по постоянной связи:
[_pomelo onRoute:@"onTlive" withCallback:^(NSDictionary *data) {
@strongify(self);
if (self.liveTableView) {
[self.liveTableView configData:data refresh:self.playerView.isScreenPortrait];
}
}];
Затем CONFIG данные и освежить TableView:
- (void)configData:(NSDictionary *)data refresh:(BOOL)refresh {
if (!data || data.allKeys.count == 0) {
return;
}
NSArray *liveArray = [data valueForKeyPath:@"body.data"];
[liveArray enumerateObjectsUsingBlock:^(NSString *obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSArray *liveDetailInfo = [obj componentsSeparatedByString:@"|"];
if (liveDetailInfo && liveDetailInfo.count > 0) {
NSArray *tliveInfo = [liveDetailInfo.lastObject componentsSeparatedByString:@"^"];
SPBasketballLive *liveObject = [SPBasketballLive new];
liveObject.type = tliveInfo[0];
liveObject.time = tliveInfo[1];
liveObject.team = tliveInfo[2];
liveObject.playerId = tliveInfo[3];
liveObject.score = tliveInfo[4];
liveObject.text = tliveInfo[5];
liveObject.quarter = ((NSString *)liveDetailInfo.firstObject).integerValue;
if (self.curMatch.liveInfo.count == liveObject.quarter) {
NSMutableArray *quarterArray = self.curMatch.liveInfo.firstObject;
[quarterArray insertObject:liveObject atIndex:0];
} else {
NSMutableArray *quarterArray = [NSMutableArray new];
[quarterArray addObject:liveObject];
[self.curMatch.liveInfo insertObject:quarterArray atIndex:0];
}
}
}];
if (refresh) {
if (_curMatch.liveInfo.count > 0) {
[self.myTableView reloadSections:[NSIndexSet indexSetWithIndex:4] withRowAnimation:UITableViewRowAnimationNone];
}
}
}
Вот журнал аварии:
недействительным обновление : недопустимое количество строк в разделе 4. Количество строк, содержащихся в существующем разделе после обновления (98), должно быть равно t количество строк, содержащихся в этом разделе перед обновлением (96), плюс или минус количество строк, вставленных или удаленных из этого раздела (0 вставлено, 0 удалено) и плюс или минус количество строк, перемещенных в или из этого раздела (0 въехал, 0 съехали)
Пожалуйста, добавьте здесь код, который вы использовали для перезагрузки uitable. – KAR
что вы получаете, пожалуйста, покажите здесь и уточните свои требования. – vaibhav