Я пытался обернуть голову вокруг метода reloadItemsAtIndexPaths UICollectionView.UICollectionView reloadItemsAtIndexPaths
У меня есть массив объектов, называемых objectsArray. Когда пользователь прокручивается в нижней части моего представления коллекции, я выбираю следующую группу объектов из бэкэнд и добавляю ее к объектуArray, вызывая [objectsArray addObjectsFromArray: objects]; После этого я называю [self.collectionView reloadData], который, как я знаю, дорогой.
Я хотел бы оптимизировать код с нижеследующим кодом, но я получаю сообщение об ошибке при вызове reloadItemsAtIndexPaths.
if (self.searchPage == 0) {
parseObjectsArray = [[NSMutableArray alloc] initWithArray:relevantDeals];
[self.collectionView reloadData];
} else {
NSMutableArray *indexPaths = [[NSMutableArray alloc] init];
for (int i = 0; i < [relevantDeals count]; i++) {
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:i inSection:0];
[indexPaths addObject:indexPath];
}
[parseObjectsArray addObjectsFromArray:relevantDeals];
[self.collectionView reloadItemsAtIndexPaths:indexPaths];
//[self.collectionView reloadData];
}
Ошибка: * отказ Assertion в - [UICollectionView _endItemAnimations], /SourceCache/UIKit/UIKit-2903.2/UICollectionView.m:3716
Любая помощь/советы очень ценится.
Спасибо!
- (NSInteger) collectionView: (UICollectionView *) коллекцияView numberOfItemsInSection: (NSInteger) раздел { return [parseObjectsArray count]; } Похоже, что он вызывается непосредственно перед утверждением, потому что я NSLogged значение [parseObjectsArray count] и возвращает более высокое значение с новыми объектами, добавленными в массив. Спасибо за предложение! –