'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

10,212

Solution 1

Try adding an all-exception breakpoint (Add Exception Breakpoint) to debug where the exception occures. It does mean you are trying to access an object which is not in the index of array.

Best to find what is causing problem is to raise all exceptions before app crashes.

enter image description herei

Solution 2

Static cells, I had the same issue. So, I just replaced the tableView content type

"Static cell" to "Dynamic prototypes".

Image

Share:
10,212
PPreeti
Author by

PPreeti

Updated on July 05, 2022

Comments

  • PPreeti
    PPreeti almost 2 years

    In my application this error coming randomly when i send attachment(like Image and video) to other user,it crashes.

    I am using Quickblox SDK.

    This is the error..

    NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]

            2016-04-26 10:22:50.510 Sample-VideoChat[1027:12093] *** Terminating  app due to uncaught exception 'NSRangeException', reason:     '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
    
      enter code here
      - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
     {
         NSLog(@"self.chatSections....%@",self.chatSections);
         return [self.chatSections count];
     }
    
    
     - (UICollectionViewCell *)collectionView:(QMChatCollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
       {
    
        QBChatMessage *messageItem = [self messageForIndexPath:indexPath];
    
          NSRange textRange =[messageItem.text rangeOfString:@"https://api.quickblox.com/blobs/"];
    
         Class class = [self viewClassForItem:messageItem];
        NSString *itemIdentifier = [class cellReuseIdentifier];
    
         QMChatCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:itemIdentifier forIndexPath:indexPath];
    cell.avatarView.tag = 0;
    
      if ((messageItem.attachments.count != 0) && textRange.location != NSNotFound) 
    {
    
           QBChatAttachment* attachment = [[QBChatAttachment alloc] init];
             attachment.ID = @"3565772";
             attachment.url = messageItem.text;
             attachment.type = @"image";
    
             [cell.avatarView setImageWithURL:[NSURL URLWithString:attachment.url] placeholder:nil options:SDWebImageContinueInBackground progress:^(NSInteger receivedSize, NSInteger expectedSize)
         {
         } completedBlock:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL)
         {
             cell.avatarView.tag = 4592;
         }];
    }
    
    cell.transform = self.collectionView.transform;
    
    UITapGestureRecognizer *singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTap:)];
    singleTapGestureRecognizer.numberOfTapsRequired = 1;
    singleTapGestureRecognizer.enabled = YES;
    
    [self collectionView:collectionView configureCell:cell forIndexPath:indexPath];
    
    return cell;
       }
    
     - (QBChatMessage *)messageForIndexPath:(NSIndexPath *)indexPath {
             if (indexPath.item == NSNotFound) {
              // If the update item's index path has an "item" value of NSNotFound, it means it was a section update, not an individual item.
            return nil;
         }
    
          QMChatSection *currentSection = self.chatSections[indexPath.section];
         return currentSection.messages[indexPath.item];
         }
    
  • PPreeti
    PPreeti about 8 years
    This code is not working for me, showing same error.
  • Parvendra Singh
    Parvendra Singh about 8 years
    @preetipatel Please check your method (Number of item in collection view). i think you created number of item with different array count which you use in cell for item
  • HardikDG
    HardikDG about 8 years
    @preetipatel ok , are you using the quickblox sample demo or created your new demo, if you are using same please provide link so we can check in the code itself
  • PPreeti
    PPreeti about 8 years
    I have created my own with the help of sample demo
  • Walid
    Walid about 6 years
    You, you save my day :)
  • CristianMoisei
    CristianMoisei over 3 years
    This does indeed reveal the issue immediately. Thanks for sharing.