• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: IPhone- Datasensitive bug from CoreData...
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IPhone- Datasensitive bug from CoreData...


  • Subject: Re: IPhone- Datasensitive bug from CoreData...
  • From: Brian Bruinewoud <email@hidden>
  • Date: Fri, 25 Dec 2009 16:48:08 +1100

Oh, sorry, here is the message in the Console:

*** -[NSCFType controllerDidChangeContent:]: unrecognized selector sent to instance 0x3a11d70
Serious application error.  Exception was caught during Core Data change processing: *** -[NSCFType controllerDidChangeContent:]: unrecognized selector sent to instance 0x3a11d70 with userInfo (null)
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFType controllerDidChangeContent:]: unrecognized selector sent to instance 0x3a11d70'
Stack: ( ...

On 25/12/2009, at 16:40 , Brian Bruinewoud wrote:

> 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 (email@hidden)
>
> 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:
>
> This email sent to email@hidden

_______________________________________________

Cocoa-dev mailing list (email@hidden)

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:

This email sent to email@hidden

  • Follow-Ups:
    • Re: IPhone- Datasensitive bug from CoreData...
      • From: Kyle Sluder <email@hidden>
    • Re: IPhone- Datasensitive bug from CoreData...
      • From: Quincey Morris <email@hidden>
    • Re: IPhone- Datasensitive bug from CoreData...
      • From: Brian Bruinewoud <email@hidden>
References: 
 >IPhone- Datasensitive bug from CoreData... (From: Brian Bruinewoud <email@hidden>)

  • Prev by Date: Re: Releasing Objects
  • Next by Date: Re: IPhone- Datasensitive bug from CoreData...
  • Previous by thread: IPhone- Datasensitive bug from CoreData...
  • Next by thread: Re: IPhone- Datasensitive bug from CoreData...
  • Index(es):
    • Date
    • Thread