2013-03-05 2 views
1

В моем приложении для 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) Результаты отрицательный индекс. Я просто добавил ФАБС функции для положительного результата индексировать

+0

проверочных self.networkImages содержит URL изображения – NANNAV

+0

да содержит URL изображений. Я могу прокручивать изображения для нормальных касаний. Но приложение притирается, когда я быстро прокручиваю. – manujmv

ответ

0

Описание ошибки говорит, что it because you (or FGallery) trying to access object from networkImages array from the index which is not exist (out of bound)!, с этим кодом мы не можем помочь вам точно --- , как его не хватает! Если вы не можете найти решение проблемы с FGallery, вы должны следить за ним до MWPhotoBrowser. Его довольно простой в использовании я нашел.

0

Используйте эту строку кода

NSMutableArray *data = [prodDet objectForKey:@"model_details"]; 

вместо

NSArray *data = [prodDet objectForKey:@"model_details"]; 
+0

, но ошибка все еще происходит – manujmv

Смежные вопросы