That's one of the few methods which are safe. I don't think the docs ever state it, but it was mentioned in a WWDC session a few years ago
Mike. Sent from my iPhone > On 26 Mar 2016, at 18:48, Ryan Meisters <ryanmeist...@gmail.com> wrote: > > Hi! > > I've inherited a codebase which uses MagicalRecord extensively. It seems that > the recommended pattern for saving with MagicalRecord is something like this: > > [MagicalRecord saveWithBlock:^(NSManagedObjectContext *backgroundContext){ > Person *backgroundPerson = [mainThreadPerson > MR_inContext:backgroundContext]; > backgroundPerson.firstName = @"John”; > backgroundPerson.lastName = @"Appleseed"; > }]; > > The MagicalRecord documentation states that the save block will always run on > a background thread. So `mainThreadPerson`, which is captured from the > surrounding scope is used from the backgrond thread to access the objectID. > > Is this ok? I believe the answer is no. The Core Data Programming Guide says: > > "NSManagedObject instances are not intended to be passed between queues. > Doing so can result in corruption of the data and termination of the > application. When it is necessary to hand off a managed object reference from > one queue to another, it must be done through NSManagedObjectID instances." > > The author or this github issue > https://github.com/magicalpanda/MagicalRecord/issues/448 raises the same > concern. The basically says it's ok becuase "we're not accessing any Core > Data properties at this point, we're accessing a ObjectID". > > Is this really ok? > > > Kind Regards, > Ryan > _______________________________________________ > > 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: > https://lists.apple.com/mailman/options/cocoa-dev/mabdullah%40karelia.com > > This email sent to mabdul...@karelia.com _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com