У меня есть пара collectionView
s в том же представлении и решила позволить одному и тому же объекту обрабатывать обязанности источника данных. У меня проблемы с методом collectionView:numberOfItemsInSection:
, когда количество элементов, которые я хочу отображать, различается между ними (что все время, кроме тех случаев, когда оно проверено с помощью фиктивного оператора с одним возвратом). В будущем число будет вытягиваться динамически, но только для отладки я подключаю статические значения.Несколько UICollectionView с одним и тем же источником данных
Метод довольно много идет:
if (cv == self.articlesView) {
return 4;
} else if (cv == self.journalsView) {
return 4;
} else if (cv == self.algorithmsView) {
return 6;
}
return 10; // this never actually runs
клетки создаются в очень простой способ в этой точке (я только начинаю на это приложение):
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {
UICollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:CellIdentifier forIndexPath:indexPath];
cell.backgroundColor = [UIColor grayColor];
return cell;
}
и я бегу Ниже для каждого из моих collectionViews в viewDidLoad
:
[cv registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:CellIdentifier];
ошибка я получаю EXC_BAD_ACCESS
и прикреплен к строке [self.window makeKeyAndVisible];
в делегате приложения.
Если я изменил количество элементов для последних collectionView
от 6 до 3 (в основном, сделайте это меньше, чем все остальные), приложение запустится, но теперь все коллекцииViews имеют меньшее количество элементов, а не только последнее (похоже, что в первый раз, когда iOS работает collectionView:numberOfItemsInSection:
, он делает это для последней коллекцииView).
Так выглядит, как в первый раз, когда метод запускается, результат как-то прилипает и применяется ко всем остальным, а затем появляется ошибка за пределами. Но я не могу понять, как исправить или найти что-то не так с моим минимальным кодом.