Core Data save exception NSInvalidArgumentException
This bug is weird since it happens at some points while program is running. After saving the context around thirty times, the program crashes.
Could you help me by pointing out my mistakes? Thanks!
-[NSCFNumber UTF8String]: unrecognized selector sent to instance 0x5a627f0 2011-05-19 17:17:38.650 DMC to Go[16892:40b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFNumber UTF8String]: unrecognized selector sent to instance 0x5a627f0' *** Call stack at first throw: ( 0 CoreFoundation 0x015d95a9 __exceptionPreprocess + 185 1 libobjc.A.dylib 0x0172d313 objc_exception_throw + 44 2 CoreFoundation 0x015db0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187 3 CoreFoundation 0x0154a966 ___forwarding___ + 966 4 CoreFoundation 0x0154a522 _CF_forwarding_prep_0 + 50 5 CoreData 0x002f970f -[NSSQLiteConnection execute] + 1231 6 CoreData 0x0034bebd -[NSSQLiteConnection updateRow:] + 365 7 CoreData 0x0034ae64 -[NSSQLConnection performAdapterOperations:] + 180 8 CoreData 0x0034ab0e -[NSSQLCore _performChangesWithAdapterOps:] + 494 9 CoreData 0x003495ea -[NSSQLCore performChanges] + 410 10 CoreData 0x00343038 -[NSSQLCore saveChanges:] + 216 11 CoreData 0x00301199 -[NSSQLCore executeRequest:withContext:error:] + 409 12 CoreData 0x003b170b -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 3691 13 CoreData 0x00339948 -[NSManagedObjectContext save:] + 712 14 DMC to Go 0x00002f9b -[dmcIpadAppDelegate saveManagedObjectChanges] + 107 15 DMC to Go 0x00020c25 +[DmcIpadAppDelegate saveManagedObjectChanges] + 117 16 DMC to Go 0x000276e3 -[DownloadFileService observeValueForKeyPath:ofObject:change:context:] + 867 17 Foundation 0x00faf1e4 NSKeyValueNotifyObserver + 361 18 Foundation 0x00faeca6 NSKeyValueDidChange + 384 19 Foundation 0x00f953e2 -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] + 123 20 DMC to Go 0x0002c4d4 -[DownloadManager connectionDidFinishLoading:] + 836 21 Foundation 0x00fd5112 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading] + 108 22 Foundation 0x00fd506b _NSURLConnectionDidFinishLoading + 133 23 CFNetwork 0x01dda48e _ZN19URLConnectionClient23_clientDidFinishLoadingEPNS_26ClientConnectionEventQueueE + 220 24 CFNetwork 0x01ea56e1 _ZN19URLConnectionClient26ClientConnectionEventQueue33processAllEventsAndConsumePayloadEP20XConnectionEventInfoI12XClientEvent18XClientEventParamsEl + 293 25 CFNetwork 0x01dd0c80 _ZN19URLConnectionClient13processEventsEv + 100 26 CFNetwork 0x01dd0acf _ZN17MultiplexerSource7performEv + 251 27 CoreFoundation 0x015ba8ff __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15 28 CoreFoundation 0x0151888b __CF开发者_如何学PythonRunLoopDoSources0 + 571 29 CoreFoundation 0x01517d86 __CFRunLoopRun + 470 30 CoreFoundation 0x01517840 CFRunLoopRunSpecific + 208 31 CoreFoundation 0x01517761 CFRunLoopRunInMode + 97 32 GraphicsServices 0x0202b1c4 GSEventRunModal + 217 33 GraphicsServices 0x0202b289 GSEventRun + 115 34 UIKit 0x00839c93 UIApplicationMain + 1160 35 DMC to Go 0x00001db9 main + 121 36 DMC to Go 0x00001d35 start + 53 37 ??? 0x00000001 0x0 + 1 ) terminate called after throwing an instance of 'NSException' Current language: auto; currently objective-c kill quit
from the exception info it looks like you are trying to extract NSString information from an NSNumber. You may want to check out this Q/A for help in troubleshooting: Core Data save exception
Something expects an NSNumber object to be an NSString object. My guess is that the model has an entity with a string attribute, but the subclass of NSManagedObject corresponding to that entity in the model has an NSNumber attribute. Maybe the model was changed, and the associated class definition is out of sync. Maybe it's an optional attribute that is empty for most objects, and then when it's finally used, thirty saves into the running of the app, it triggers this exception.
精彩评论