• 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: Core Data to many relationship deletion causing exception - SOLVED?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Core Data to many relationship deletion causing exception - SOLVED?


  • Subject: Re: Core Data to many relationship deletion causing exception - SOLVED?
  • From: Quincey Morris <email@hidden>
  • Date: Tue, 16 Aug 2011 13:27:22 -0700

On Aug 16, 2011, at 13:14 , Andrew Kinnie wrote:

> Hmm.  Well the generated code was created by Xcode 4's "Create NSManagedObject Subclass" based on the model.   The properties are created along with the methods, however due to an earlier issue, I changed @dynamic to @synthesize for the various properties in the .m for Article and MediaResource.  There are no ivars.  Apparently this caused the problem.  Changing it back to @dynamic fixed it.
>
> Further debugging indicated that when I deleted an article, using
>
> [self.moc deleteObject:myArticle];
>
> and at the point that is called, the article had a media object in it's media relationship (doing po myArticle in the debugger indicates this) but when I click continue, it lands on a breakpoint in the removeMediaObject method in Article, and the value passed in exists, but the media relationship itself contains no objects.  That is where the crash occurred.  So apparently, Core Data was doing the cascade delete, then because I had "@synthesize" instead of "@dynamic" it called the class's removeMediaObject method trying to remove the object that is no longer in the relationship, thus it breaks by calling removeObject" on the __NSSet0 singleton object.

If you change a Core Data model property from @dynamic to @synthesize, then it isn't using Core Data any more -- it's using ivars for the property backing store instead. That means you end up with 2 properties with the same name -- the model-derived property that Core Data knows about, and the subclass-derived property that the rest of your app knows about. No wonder that crashes start to occur.

You *cannot* swap @synthesize and @dynamic for a Core Data property, not ever. You can replace the Core Data implementation (the @dynamic one, so to speak) with your own implementation. Just not the @synthesize'd one. Not ever.


_______________________________________________

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

References: 
 >Core Data to many relationship deletion causing exception (From: Andrew Kinnie <email@hidden>)
 >Re: Core Data to many relationship deletion causing exception (From: Keary Suska <email@hidden>)
 >Re: Core Data to many relationship deletion causing exception - SOLVED? (From: Andrew Kinnie <email@hidden>)

  • Prev by Date: Re: Is it possible to traverse dictionaries and arrays using KVC?
  • Next by Date: Re: Revert Camera Image
  • Previous by thread: Re: Core Data to many relationship deletion causing exception - SOLVED?
  • Next by thread: Revert Camera Image
  • Index(es):
    • Date
    • Thread