title: iOS 7 beginUpdates endUpdates inconsistent
body: <p><strong>Edit</strong>:
  The solution for this answer is related to iOS7 sometimes returning <code>NSIndexPath</code> and other times returning <code>NSMutableIndexPath</code>. The issue wasn't really related to <code>begin/endUpdates</code>, but hopefully the solution will help some others.</p>
  
  <hr>
  
  <p>All - I'm running my app on iOS 7, and I'm running into problems with the <code>beginUpdates</code> and <code>endUpdates</code> methods for a <code>UITableView</code>.</p>
  
  <p>I have a tableview that needs to change the height of a cell when touched. Below is my code:</p>
  
  <pre><code>- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  
          // If our cell is selected, return double height
          if([self cellIsSelected:indexPath]) {
              return 117;
          }
  
          // Cell isn't selected so return single height
          return 58;
  
  }
  
  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
  
          ChecklistItemCell *cell = (ChecklistItemCell *)[self.tableview cellForRowAtIndexPath:indexPath];
          [cell.decreaseButton setHidden:NO];
          [cell.increaseButton setHidden:NO];
  
          // Toggle 'selected' state
          BOOL isSelected = ![self cellIsSelected:indexPath];
  
          DLog(@"%@", selectedIndexes);
  
          DLog(@"is selected: %@", isSelected ? @"yes":@"no");
          // Store cell 'selected' state keyed on indexPath
          NSNumber *selectedIndex = @(isSelected);
          selectedIndexes[indexPath] = selectedIndex;
  
          [tableView beginUpdates];
          [tableView endUpdates];
  
  }
  </code></pre>
  
  <p>The <code>beginUpdates</code> and <code>endUpdates</code> methods are working pretty inconsistently. The <code>didSelectRowAtIndexPath</code> method gets called correctly on each touch(I thought at first the UI was getting blocked), and the <code>selectedIndexes</code> is storing alternating values correctly. The issue is, sometimes I touch a table cell and all the methods are called properly, but the cell height doesn't change. Anyone know what's going on?</p>