title: NSUserDefaults setObject method causes the app to crash in ios8
body: <p>I am having an app in which I am passing some data between viewControllers with NSUserDefaults.</p>
  
  <p>This is the code below I am using.</p>
  
  <pre><code>[[NSUserDefaults standardUserDefaults]setObject:selectedLists forKey:UserID];
  </code></pre>
  
  <p>Where <strong>selectedLists</strong> is <strong>NSMutableArray</strong> and UserID is <strong>NSString</strong>.</p>
  
  <p>This code works fine until ios7 and xCode5.</p>
  
  <p>Since I have updated xCode6 and now I am using ios8, my app works fine with xCode 6 and ios 7.1 but the app crashes when I run the app in ios8 devices with the error below.</p>
  
  <pre><code>Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0x7a027060'
  </code></pre>
  
  <p>I just don't understand what is the problem here.</p>
  
  <p>If anyone has faced this problem with ios8 then please help me.</p>
  
  <p>Thanks in advance.</p>
  
  <p>Value of <strong>selectedLists</strong></p>
  
  <pre><code>    {
          CardFace = Word;
          ImportFlag = Import;
          ListID = 1;
          ListName = "Adjectives - Appearance";
          QuizBy = Definition;
          UserID = 1;
      }
  </code></pre>
  
  <p>and UserId is 1.</p>
  
  <p><strong>EDITED</strong></p>
  
  <pre><code> *** First throw call stack:
      (
          0   CoreFoundation                      0x06a24df6 __exceptionPreprocess + 182
          1   libobjc.A.dylib                     0x03ac8a97 objc_exception_throw + 44
          2   CoreFoundation                      0x06a2ca75 -[NSObject(NSObject) doesNotRecognizeSelector:] + 277
          3   CoreFoundation                      0x069759c7 ___forwarding___ + 1047
          4   CoreFoundation                      0x0697558e _CF_forwarding_prep_0 + 14
          5   CoreFoundation                      0x068df30f CFStringGetLength + 143
          6   CoreFoundation                      0x069de510 _CFPrefsEncodeKeyValuePairIntoMessage + 64
          7   CoreFoundation                      0x06a275cf -[CFPrefsPlistSource sendMessageSettingValue:forKey:] + 111
          8   CoreFoundation                      0x06954f3a -[CFPrefsPlistSource alreadylocked_setValue:forKey:] + 250
          9   CoreFoundation                      0x06954e22 -[CFPrefsSource setValue:forKey:] + 82
          10  CoreFoundation                      0x06954dc3 ___CFPreferencesSetValueWithContainer_block_invoke + 51
          11  CoreFoundation                      0x0690ef0a +[CFPrefsSource withSourceForIdentifier:user:byHost:container:perform:] + 1274
          12  CoreFoundation                      0x06954d61 _CFPreferencesSetValueWithContainer + 225
          13  CoreFoundation                      0x06a0aa62 _CFPreferencesSetAppValueWithContainer + 66
          14  Foundation                          0x0347f53f -[NSUserDefaults(NSUserDefaults) setObject:forKey:] + 59
          15  Foundation                          0x0353eeba -[NSUserDefaults(NSKeyValueCoding) setValue:forKey:] + 68
          16  Vocab                               0x000eaecc Vocab + 720588
          17  libobjc.A.dylib                     0x03ade7cd -[NSObject performSelector:withObject:withObject:] + 84
          18  UIKit                               0x022a079d -[UIApplication sendAction:to:from:forEvent:] + 99
          19  UIKit                               0x022a072f -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
          20  UIKit                               0x023d3a16 -[UIControl sendAction:to:forEvent:] + 69
          21  UIKit                               0x023d3e33 -[UIControl _sendActionsForEvents:withEvent:] + 598
          22  UIKit                               0x023d309d -[UIControl touchesEnded:withEvent:] + 660
          23  UIKit                               0x022f0aba -[UIWindow _sendTouchesForEvent:] + 874
          24  UIKit                               0x022f1595 -[UIWindow sendEvent:] + 791
          25  UIKit                               0x022b6aa9 -[UIApplication sendEvent:] + 242
          26  UIKit                               0x022c68de _UIApplicationHandleEventFromQueueEvent + 20690
          27  UIKit                               0x0229b079 _UIApplicationHandleEventQueue + 2206
          28  CoreFoundation                      0x069487bf __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
          29  CoreFoundation                      0x0693e2cd __CFRunLoopDoSources0 + 253
          30  CoreFoundation                      0x0693d828 __CFRunLoopRun + 952
          31  CoreFoundation                      0x0693d1ab CFRunLoopRunSpecific + 443
          32  CoreFoundation                      0x0693cfdb CFRunLoopRunInMode + 123
          33  GraphicsServices                    0x0436424f GSEventRunModal + 192
          34  GraphicsServices                    0x0436408c GSEventRun + 104
          35  UIKit                               0x0229ee16 UIApplicationMain + 1526
          36  Vocab                               0x0004c9bc Vocab + 72124
          37  libdyld.dylib                       0x03ee6ac9 start + 1
      )
      libc++abi.dylib: terminating with uncaught exception of type NSException
  </code></pre>
  
  <p><strong>Edited</strong>
  On my tableview's didselect method...</p>
  
  <pre><code>UserID = [[users objectAtIndex:indexPath.row] valueForKey:@"UserID"];
  </code></pre>
  
  <p>where <strong>users</strong> is an array.</p>