我正在使用NSArray将对象加载到我的UICollectionView中。 UICollectionView有一个与之关联的UIPageViewController,我抓取每个页面的索引。根据您所在的页面,我想加载不同的对象。
我尝试使用以下内容执行此操作:
NSDictionary *dictionary = [[NSDictionary alloc] init];
if (self.index == 0) {
dictionary = [self.imageArray objectAtIndex:indexPath.row];
} else if (self.index == 1) {
dictionary = [self.imageArray objectAtIndex:12 + indexPath.row];
NSLog(@"%@", self.imageArray);
} else if (self.index == 2) {
dictionary = [self.imageArray objectAtIndex:24 + indexPath.row];
}
self.index
是您所在的页面。
但是,我一直遇到以下崩溃:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 48 beyond bounds [0 .. 47]'
但是,我的数组确实有48个对象。每页上加载了12个对象。
这与我每次设置字典有什么关系吗?我唯一想到的就是......
帮助将不胜感激。
答案 0 :(得分:0)
尝试更好地构建模型,而不是使用那些丑陋的if
和扭曲的逻辑。这样做的一种方法是拥有一个数组数组:每个页面都有一个图像数组。您知道从模型中计算的页数,访问正确的图像就像self.images[self.index][indexpath.row]
一样简单您也可以使用UIcollectionview
每页都有一个部分。