В моем приложении для iPhone я использую FGallery из github для отображения фотогалереи. Моя проблема иногда, когда я несколько кликов по изображению в галерее (я думаю, что это в основном для первого изображения), мое приложение выходит из строя со следующим сообщением об ошибке.Ошибка приложения в UIScrollView с ошибкой индекса за пределами
* Нагрузочное приложение из-за неперехваченное исключение 'NSRangeException', причина: '* - [__ NSArrayM objectAtIndex]: индекс 4294967295 за пределов [0 .. 1]
Моего кода для передачи массива в класс FGallery.
в .h
@interface ProdDetails : UIViewController<FGalleryViewControllerDelegate> {
NSMutableArray *networkImages;
FGalleryViewController *networkGallery;
}
@property(strong,nonatomic) NSMutableArray *networkImages;
@property(strong,nonatomic) FGalleryViewController *networkGallery;
-(void)setNetworkImages;
в ом
-(void)setNetworkImages {
self.networkImages = [[NSMutableArray alloc]init];
NSArray *data = [prodDet objectForKey:@"model_details"];
for (id eachDic in data) {
NSString *eachUrl = [NSString stringWithFormat:@"%@%@",IMG_INIT_URL,[eachDic objectForKey:@"model_imgurl"]];
eachUrl = [common replaceStringWhiteSpaceinUrl:eachUrl];
[self.networkImages addObject:eachUrl];
}
}
-(void)showProductImageGallery {
networkGallery = [[FGalleryViewController alloc]initWithPhotoSource:self];
CATransition *transition = [CATransition animation];
transition.duration = 1.0;
transition.type = kCATransitionFade;
transition.subtype = kCATransitionFromTop;
[self.navigationController.view.layer addAnimation:transition forKey:kCATransition];
[self.navigationController pushViewController:networkGallery animated:NO];
}
Любой, пожалуйста, помогите мне решить эту проблему.
EDIT
Спасибо всем. Наконец я нашел проблему. Проблема в FGallery.
- (void)scrollingHasEnded {
_isScrolling = NO;
NSUInteger newIndex = fabs(floor(_scroller.contentOffset.x/_scroller.frame.size.width));
//NSLog(@"%f,%f,%i",_scroller.contentOffset.x,_scroller.frame.size.width,newIndex);
// don't proceed if the user has been scrolling, but didn't really go anywhere.
if(newIndex == _currentIndex)
return;
// clear previous
[self unloadFullsizeImageWithIndex:_currentIndex];
_currentIndex = newIndex;
[self updateTitle];
[self updateButtons];
[self loadFullsizeImageWithIndex:_currentIndex];
[self preloadThumbnailImages];
}
Когда мы прокручиваем первое изображение до предыдущего, _scroller.contentOffset.x становится отрицательным. So floor(_scroller.contentOffset.x/_scroller.frame.size.width)
Результаты отрицательный индекс. Я просто добавил ФАБС функции для положительного результата индексировать
проверочных self.networkImages содержит URL изображения – NANNAV
да содержит URL изображений. Я могу прокручивать изображения для нормальных касаний. Но приложение притирается, когда я быстро прокручиваю. – manujmv