• 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: CoreData: updating property of fetched object and refetching
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CoreData: updating property of fetched object and refetching


  • Subject: Re: CoreData: updating property of fetched object and refetching
  • From: Keary Suska <email@hidden>
  • Date: Tue, 20 Apr 2010 17:16:16 -0600

On Apr 20, 2010, at 11:22 AM, olivier destrebecq wrote:

> 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.

Yes. Everything the person said in their email was entirely false (even the statement about SQL). Ignore it completely.

> 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.

All the save: does is flush all changes to the context to the persistent store. Therefore, they must already be "committed" to the context, so to speak. Assuming that you have only one context and are not using multiple threads, you may be running into an issue where you have to call -processPendingChanges on the context. This might be why you see the delay in "committing", as processPendingChanges  is normally called in the run loop. Give that a shot.

> 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?

Just to clarify that statement, the docs are simply saying that, no matter what, you will always get the in-memory representation, and in fact, will get the very same manage object that you have previously edited, rather than a new object with updated values.

> On Tue, Apr 20, 2010 at 9:23 AM, Joanna Carter <
> email@hidden> 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 (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
>


Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"

_______________________________________________

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: CoreData: updating property of fetched object and refetching
      • From: olivier destrebecq <email@hidden>
References: 
 >CoreData: updating property of fetched object and refetching (From: olivier destrebecq <email@hidden>)
 >Re: CoreData: updating property of fetched object and refetching (From: Joanna Carter <email@hidden>)
 >Re: CoreData: updating property of fetched object and refetching (From: olivier destrebecq <email@hidden>)

  • Prev by Date: Re: Drawing glitches in NSTableView with variable row hight (just like Console.app)
  • Next by Date: Re: Drawing glitches in NSTableView with variable row hight (just like Console.app)
  • Previous by thread: Re: CoreData: updating property of fetched object and refetching
  • Next by thread: Re: CoreData: updating property of fetched object and refetching
  • Index(es):
    • Date
    • Thread