title: NSMutable Array - objectAtIndex: index beyond bounds
body: <p>I'm trying to look through a NSMutableDictionary loaded with an NSMutableArray and I'm messing it up, and I don't know how.  I'm trying to load a larger plist of game questions, then delete them if they aren't the right level.  I don't get an error until I try and delete.  Can anyone see the flaw in this code?  I'd super appreciate it!</p>
  
  <p>Thanks,</p>
  
  <p>~G</p>
  
  <pre><code>{
  NSUserDefaults *settings = [NSUserDefaults standardUserDefaults];
  NSString *GameLevel = [[NSString alloc] initWithFormat: [settings objectForKey:kLevelKey]];
  
  NSBundle *Bundle = [NSBundle mainBundle];
  NSString *PListPath = [Bundle pathForResource:@"questions" ofType:@"plist"];
  
  NSMutableDictionary *Dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:PListPath]; 
  
  self.QuestionDetailsByLevel = Dictionary;
  [Dictionary release];
  
  NSMutableArray *Components = [[NSMutableArray alloc] initWithArray:[QuestionDetailsByLevel allKeys]];
  self.QuestionsByLevel = Components;
  
  int QuestionCount = [self.QuestionsByLevel count] - 1;
  
  for (int j = 0; j &lt; QuestionCount - 1; j++)
  {
  
      NSString *SelectedQuestion = [self.QuestionsByLevel objectAtIndex:j];
      NSMutableArray *Array = [QuestionDetailsByLevel objectForKey:SelectedQuestion];
      self.QDetailsByLevel = Array;
  
      NSString *level = [[NSString alloc] initWithFormat:[self.QDetailsByLevel objectAtIndex:Level]];
  
      if (level != GameLevel)
          [QuestionsByLevel removeObjectAtIndex:j];   
  }
  }
  </code></pre>