gpt4 book ai didi

objective-c - 防止 subarrayWithRange 中的 NSRangeException

转载 作者:行者123 更新时间:2023-12-04 02:47:58 25 4
gpt4 key购买 nike

我有这个代码,它允许我传入一个索引,并有选择地检索数组中特定范围长度的许多图像 - 取决于方向。

在纵向时,范围应该是每个索引 20 个项目,我总共有 43 个项目。但是,当我传入最后一个索引时,我得到了索引 59 超出范围的异常 [0..42]。

NSArray *tempArray = [self imageData];

UIDeviceOrientation devOr = [[UIDevice currentDevice] orientation];

int kItemsPerView;

if (UIDeviceOrientationIsPortrait(devOr)) {
kItemsPerView = 20;
}else {
kItemsPerView = 14;
}

NSRange rangeForView = NSMakeRange( index * kItemsPerView, kItemsPerView );

NSArray *subArray = [[tempArray subarrayWithRange:rangeForView] retain];
NSMutableArray *imagesForView = [NSMutableArray arrayWithArray:subArray];
[subArray release];

return imagesForView;

我怎样才能防止这种情况?

谢谢。

最佳答案

if ((index * kItemsPerView + kItemsPerView) >= tempArray.count)
rangeForView = NSMakeRange( index * kItemsPerView, tempArray.count-index*kItemsPerView );

关于objective-c - 防止 subarrayWithRange 中的 NSRangeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4255301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com