On Oct 28, 2016, at 9:44 PM, Steve Mills <sjmi...@mac.com> wrote: > > On Oct 27, 2016, at 23:35:39, Dave Fernandes <da...@luxsci.net> wrote: >> >> The managed objects exist in a MOC whether you have a reference to that MOC >> or not. You can get a reference to the MOC that an MO “belongs to" from the >> -[NSManagedObject managedObjectContext] instance method. Since the >> properties you need are so few and simple, why don’t you just pass these in >> to the NSOperation when you create it on the main thread instead of giving >> it the managed object? Then the MO will never be accessed off the main queue. > > I moved the CGImageSource creation to outside the block, which is where I > needed to access the managed object's folder and name properties. The block > now just loads the image from the source, converts it to an NSImage, and sets > the managed object's thumb property. It's no longer crashing, but the setting > of the thumb property seems like that shouldn't happen inside the block.
You’re correct in this, reading a property of an NSManagedObject from another thread isn’t safe, and writing it isn’t either. > So would that be the right place to use the NSManagedObjectContext's > performBlock:? What you’ve done actually looks correct, in that you’re only interacting with the managed object’s managed (Core Data) properties (“thumb” in this case) within the block passed to -performBlock:. -- Chris _______________________________________________ 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