title: Collection <__NSArrayM: 0x7fa1f2711910> was mutated while being enumerated
body: <p>There are number of questions with similar title but none them of helped me.  </p>
  
  <p>but i can relate solution of this <a href="https://stackoverflow.com/questions/28107809/nsgenericexception-reason-collection-nsarraym-0x7fabb400-was-mutated-wh">&#39;NSGenericException&#39;, reason: Collection &lt;__NSArrayM: 0x7fabb400&gt; was mutated while being enumerated</a> 
  question with my question. <strong>Because this termination is happening 
  when I'm adding,removing string object with array.</strong></p>
  
  <p><strong>Error :</strong> </p>
  
  <p>Terminating app due to uncaught exception 'NSGenericException', 
  reason: '*** Collection &lt;__NSArrayM: 0x7fa1f2711910> was mutated while being enumerated.'</p>
  
  <p>First throw call stack:</p>
  
  <pre><code>(
  
  0   CoreFoundation                      0x00000001087b8c65 __exceptionPreprocess + 165
  1   libobjc.A.dylib                     0x0000000108422bb7 objc_exception_throw + 45
  2   CoreFoundation                      0x00000001087b85c4 __NSFastEnumerationMutationHandler + 132
  3                                       0x0000000107e24cf5 -[ProfessionalRegSecond tableView:didDeselectRowAtIndexPath:] + 773
  4   UIKit                               0x0000000109759d71 -[UITableView _deselectRowAtIndexPath:animated:notifyDelegate:] + 347
  5   UIKit                               0x000000010974deea -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 187
  6   UIKit                               0x000000010968062c _applyBlockToCFArrayCopiedToStack + 314
  7   UIKit                               0x00000001096804a6 _afterCACommitHandler + 533
  8   CoreFoundation                      0x00000001086ebca7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
  9   CoreFoundation                      0x00000001086ebc00 __CFRunLoopDoObservers + 368
  10  CoreFoundation                      0x00000001086e1a33 __CFRunLoopRun + 1123
  11  CoreFoundation                      0x00000001086e1366 CFRunLoopRunSpecific + 470
  12  GraphicsServices                    0x000000010d6c8a3e GSEventRunModal + 161
  13  UIKit                               0x000000010965c900 UIApplicationMain + 1282
  14                                      0x0000000107de14cf main + 111
  15  libdyld.dylib                       0x000000010b585145 start + 1
  )
  </code></pre>
  
  <p>libc++abi.dylib: terminating with uncaught exception of type NSException</p>
  
  <p><strong>What I'm trying to do :</strong></p>
  
  <p>I need array in such way that when i select cell  i want to add that object to array &amp; when I'm deselecting row i want to remove that row from array so as a result array will be only selected entries. How to do this ?</p>
  
  <p><strong>Here is my code</strong></p>
  
  <pre><code>@implementation Professional
  
      {
           NSMutableArray *updatedLocalityArray; // alloc,init did in viewDidLoad
           NSString *toCheck;
      }
  
  - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
  
     {
  
          UITableViewCell *tableViewCell = [tableView cellForRowAtIndexPath:indexPath];
  
          NSLog(@"%@",tableViewCell.textLabel.text);
  
          toCheck = tableViewCell.textLabel.text;
          [updatedLocalityArray addObject:toCheck];
          NSLog(@"%@ *****", updatedLocalityArray);
  
     }
  
    - (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
      {
  
          UITableViewCell *tableViewCell = [tableView cellForRowAtIndexPath:indexPath];
             NSLog(@"%@",tableViewCell.textLabel.text);
  
          for (NSString *test in updatedLocalityArray)
          {
              if ([test isEqualToString:tableViewCell.textLabel.text])
              {
  
                  [updatedLocalityArray removeObject:test];
                  NSLog(@"%@ *****", updatedLocalityArray);
  
              }
  
          }
  
      }
  </code></pre>