开发者

Core Data save exception

I got very weird issue with managedObjectContext:save. It hasn't happened at the first time I save the context, it only happens at some point of my program. Could you help me to know why it happened and where should I should find a bug in my code? Thanks.

Here is the log:

-[NSCFNumber UTF8String]: unrecognized selector sent to instance 0x5a64110
2011-05-19 16:02:43.235 DMC to Go[98212:40b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFNumber UTF8String]: unrecognized selector sent to instance 0x5a64110'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x015d85a9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x0172c313 objc_exception_throw + 44
    2   CoreFoundation                      0x015da0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x01549966 ___forwarding___ + 966
    4   CoreFoundation                      0x015开发者_StackOverflow中文版49522 _CF_forwarding_prep_0 + 50
    5   CoreData                            0x002f870f -[NSSQLiteConnection execute] + 1231
    6   CoreData                            0x0034aebd -[NSSQLiteConnection updateRow:] + 365
    7   CoreData                            0x00349e64 -[NSSQLConnection performAdapterOperations:] + 180
    8   CoreData                            0x00349b0e -[NSSQLCore _performChangesWithAdapterOps:] + 494
    9   CoreData                            0x003485ea -[NSSQLCore performChanges] + 410
    10  CoreData                            0x00342038 -[NSSQLCore saveChanges:] + 216
    11  CoreData                            0x00300199 -[NSSQLCore executeRequest:withContext:error:] + 409
    12  CoreData                            0x003b070b -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 3691
    13  CoreData                            0x00338948 -[NSManagedObjectContext save:] + 712
    14  DMC to Go                           0x0000313b -[dmcIpadAppDelegate saveManagedObjectChanges] + 107
    15  DMC to Go                           0x00020dc5 +[DmcIpadAppDelegate saveManagedObjectChanges] + 117
    16  DMC to Go                           0x00027883 -[DownloadFileService observeValueForKeyPath:ofObject:change:context:] + 867
    17  Foundation                          0x00fae1e4 NSKeyValueNotifyObserver + 361
    18  Foundation                          0x00fadca6 NSKeyValueDidChange + 384
    19  Foundation                          0x00f943e2 -[NSObject(NSKeyValueObserverNotification) didChangeValueForKey:] + 123
    20  DMC to Go                           0x0002c674 -[DownloadManager connectionDidFinishLoading:] + 836
    21  Foundation                          0x00fd4112 -[NSURLConnection(NSURLConnectionReallyInternal) sendDidFinishLoading] + 108
    22  Foundation                          0x00fd406b _NSURLConnectionDidFinishLoading + 133
    23  CFNetwork                           0x01dd948e _ZN19URLConnectionClient23_clientDidFinishLoadingEPNS_26ClientConnectionEventQueueE + 220
    24  CFNetwork                           0x01ea46e1 _ZN19URLConnectionClient26ClientConnectionEventQueue33processAllEventsAndConsumePayloadEP20XConnectionEventInfoI12XClientEvent18XClientEventParamsEl + 293
    25  CFNetwork                           0x01dcfc80 _ZN19URLConnectionClient13processEventsEv + 100
    26  CFNetwork                           0x01dcfacf _ZN17MultiplexerSource7performEv + 251
    27  CoreFoundation                      0x015b98ff __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
    28  CoreFoundation                      0x0151788b __CFRunLoopDoSources0 + 571
    29  CoreFoundation                      0x01516d86 __CFRunLoopRun + 470
    30  CoreFoundation                      0x01516840 CFRunLoopRunSpecific + 208
    31  CoreFoundation                      0x01516761 CFRunLoopRunInMode + 97
    32  GraphicsServices                    0x0202a1c4 GSEventRunModal + 217
    33  GraphicsServices                    0x0202a289 GSEventRun + 115
    34  UIKit                               0x00838c93 UIApplicationMain + 1160
    35  DMC to Go                           0x00001f59 main + 121
    36  DMC to Go                           0x00001ed5 start + 53
    37  ???                                 0x00000001 0x0 + 1
)
terminate called after throwing an instance of 'NSException'

Current language: auto; currently objective-c


  1. Make sure you have no warnings
  2. Put breakpoints in your code where you think you are setting an NSString on your object
  3. And/Or NSLog %@ the class of NSString properties of your core data objects and make sure it is some variation of an NSString. (NSLog(@"%@", [obj.property class]);)

What is happening is something that you are saving has an NSNumber object in place of an NSString. Since NSNumber does not respond to UTF8String your application is crashing.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜