Just to clarify, when i say save, i mean call save: on the context and write it to disk. Which the documentation state that you don't have to call save: to be able to query for objects and that modified object will be found.
If i wait a little bit (probably for the next event in the event loop) then the object is found and i never called save: on the context (which will save the context to disk). I actually only call save: when the app exits. The save: method will commit to disk, i'll looking for what trigger a commit to context I guess. From: http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSManagedObjectContext_Class/NSManagedObjectContext.html#//apple_ref/occ/instm/NSManagedObjectContext/executeFetchRequest:error: "If an object in a context has been modified, a predicate is evaluated against its modified state, not against the current state in the persistent store. Therefore, if an object in a context has been modified such that it meets the fetch request’s criteria, the request retrieves it even if changes have not been saved to the store and the values in the store are such that it does not meet the criteria. Conversely, if an object in a context has been modified such that it does not match the fetch request, the fetch request will not retrieve it even if the version in the store does match." I think what i'm running into is this: "If you fetch some objects, work with them, and then execute a new fetch that includes a superset of those objects, you do not get new instances or*update data for the existing objects *—you get the existing objects with their current in-memory state." The question is how do i commit the updated data to the in memory representation? Thanks Olivier On Tue, Apr 20, 2010 at 9:23 AM, Joanna Carter < cocoa...@carterconsulting.org.uk> wrote: > Hi Olivier > > > I create an object and insert it into the context, then i update a couple > > properties. > > > > Later I i do a fetch request with a predicate on the property i updated > > after the insertion. If i do this fetch right after the update of the > > property (using the accessors provided by coreData), then the fetch does > not > > find the object I created. If i wait longer then it finds it. > > > > Is there a way to "commit" the change so that the fetch will find the > object > > without saving. I don't want to save every time i update a property. > > Since a fetch request returns fully saved objects, I can't see how you can > expect it to see unsaved changes. > > Think about it in database terms - you wouldn't expect a SQL statement to > return anything other than committed rows. Essentially Core Data is an "OO > database" and, unless you write your own caching, I doubt if you are going > to get what you want without saving. > > Joanna > > -- > Joanna Carter > Carter Consulting > > _______________________________________________ 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