This has me totally stumped. I have an app that contains (currently) three Entities: Person Deed; and DeedDoneByPerson
Deed is effectively a template object. I'll probably re-do the object model but I want to understand what's going on with this bug first. Deeds can be good or not and have a degree of goodness. Here is the code that creates a new deed and deedDoneByPerson: NSManagedObject *newDeed = [ NSEntityDescription insertNewObjectForEntityForName: @"Deed" inManagedObjectContext: context ]; int score; if( self.isGood ) score = sender.tag; else score = - sender.tag; [newDeed setValue: self.deedName.text forKey: @"deedName" ]; [newDeed setValue: [ NSNumber numberWithBool: self.isGood ] forKey: @"isGood" ]; [newDeed setValue: [ NSNumber numberWithInt: score ] forKey: @"points" ]; NSManagedObject *newDeedDoneByPerson = [ NSEntityDescription insertNewObjectForEntityForName: @"DeedDoneByPerson" inManagedObjectContext: context ]; [newDeedDoneByPerson setValue: newDeed forKey: @"deedDone" ]; [newDeedDoneByPerson setValue: selectedPerson forKey: @"byPerson" ]; [newDeedDoneByPerson setValue: [ NSNumber numberWithBool: self.isGood ] forKey: @"isGood" ]; // let 'points' and 'instances' default FYI2( @":: Create new deed [...@]", self.deedName.text ); NSError *error; if (![context save:&error]) //!!!!!!! CRASHES HERE !!!!!!!! { NSLog(@"!! Unresolved error %@, %@", error, [error userInfo]); abort(); } The following scenarios work: With a fresh app (deleted from the simulator and re-installed), create a person and add any number of bad deeds to that person - they are displayed correctly and sqlite has the expected contents. With a fresh app (deleted from the simulator and re-installed), create a person and add any number of good deeds to that person - they are displayed correctly and sqlite has the expected contents. With a fresh app (deleted from the simulator and re-installed), create a person and add any number of bad deeds to that person - they are displayed correctly and sqlite has the expected contents. Then create another person and add any number of good deeds to that person - they are displayed correctly and sqlite has the expected contents The following scenario does NOT work: With a fresh app (deleted from the simulator and re-installed), create a person and add a bad deed to that person then attempt to add a good deed. BOOM Stack trace: #0 0x93affedb in objc_msgSend #1 0x939f4b6c in ?? #2 0x0001763a in _nsnote_callback #3 0x01d34005 in _CFXNotificationPostNotification #4 0x00014ef0 in -[NSNotificationCenter postNotificationName:object:userInfo:] #5 0x01ba717d in -[NSManagedObjectContext(_NSInternalNotificationHandling) _postObjectsDidChangeNotificationWithUserInfo:] #6 0x01c06763 in -[NSManagedObjectContext(_NSInternalChangeProcessing) _createAndPostChangeNotification:withDeletions:withUpdates:withRefreshes:] #7 0x01b8b5ea in -[NSManagedObjectContext(_NSInternalChangeProcessing) _processRecentChanges:] #8 0x01bc1728 in -[NSManagedObjectContext save:] #9 0x00005434 in -[NewDeedViewController commit:] at NewDeedViewController.m:131 <------------------- CODE ABOVE #10 0x00298459 in -[UIApplication sendAction:to:from:forEvent:] #11 0x002fbba2 in -[UIControl sendAction:to:forEvent:] #12 0x002fddc3 in -[UIControl(Internal) _sendActionsForEvents:withEvent:] #13 0x002fcb0f in -[UIControl touchesEnded:withEvent:] #14 0x002b1e33 in -[UIWindow _sendTouchesForEvent:] #15 0x0029b81c in -[UIApplication sendEvent:] #16 0x002a20b5 in _UIApplicationHandleEvent #17 0x0252cef1 in PurpleEventCallback #18 0x01d40b80 in CFRunLoopRunSpecific #19 0x01d3fc48 in CFRunLoopRunInMode #20 0x0252b7ad in GSEventRunModal #21 0x0252b872 in GSEventRun #22 0x002a3003 in UIApplicationMain #23 0x00001cb4 in main at main.m:14 I don't understand how the value of 'score' breaks things. If I get rid of the negation in this code: int score; if( self.isGood ) score = sender.tag; else score = - sender.tag; everything works fine: adding good and bad to the same person is acceptable. Any suggestions on what to investigate? _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com