Hi,

you call addObserver on that CoreData object - which is a regular NSObject descendant anyway. So just as for every other NSObject you want to observe a property of. In case of CoreData objects you have to deal with it differently than with objects you create your self in your code 8and dispose again, since unregistering as observer is necessary as well). In Core Data objects awakeFromFetch, -Insert, ... etc. They can be undoed, faulted, ... and all that you have to take into consideration when observing NSManagedObjects. which is not trivial at all in some situations, see the Mailinglist archive for that topic, it was covered just weeks ago in length.

As usual -> code makes helping easier. I am still not sure what you have tried and how. No one else on the list will no neither.


Cheers, Volker

Am 07.10.2009 um 17:05 schrieb Joshua Garnham:

Hi,

I see, how do you observe a CoreData Property?

From: Volker in Lists <[email protected]>
To: Joshua Garnham <[email protected]>
Sent: Wednesday, 7 October, 2009 8:11:48
Subject: Re: Triggering a Method when a Core Data Property is Altered.

Hi,

you have to add an observer to the CoreData entity - which is probably what you haven't done there. Also, you have to observe a property, that is observable - otherwise nothing is triggered.

Volker

Am 07.10.2009 um 07:40 schrieb Joshua Garnham:

Volker,

I have tried using the below code to add my self as an observer then trigger an action but it doesn't work.

- awakeFromNib {
[self
 addObserver: self
            forKeyPath: @"name"
               options: NSKeyValueObservingOptionNew
               context: NULL];
}
-(id)init {
        dispatch
= [[NSDictionary dictionaryWithObjectsAndKeys:@selector (doSomething:),@"name", nil] retain];
}
...
- (void)observeValueForKeyPath:(NSString *)keyPath
            ofObject:(id)object
            change:(NSDictionary *)change
            context:(void *)context
{
    [self performSelector:msg withObject:object withObject:keyPath];
}

Is there something wrong that is blatantly obvious?

Cheers,
Josh.

From: Volker in Lists <[email protected]>
To: Joshua Garnham <[email protected]>
Cc: [email protected]
Sent: Tuesday, 6 October, 2009 18:57:59
Subject: Re: Triggering a Method when a Core Data Property is Altered.

Josh,

depending on where you need to get a notification:

a) within the same NSManagedObject or a relationship:http:// developer.apple.com/mac/library/documentation/Cocoa/Reference/ Foundation/Protocols/NSKeyValueObserving_Protocol/Reference/ Reference.html#//apple_ref/occ/clm/NSObject/ keyPathsForValuesAffectingValueForKey:

b) in any other object: just register as observer as described in KVO basics:http://developer.apple.com/mac/library/documentation/ Cocoa/Conceptual/KeyValueObserving/Concepts/KVOBasics.html

Take note: The triggering happens not on the change of the TextFieldCell in a table, but due to a property changing.

When you have looked into KVO - what have you tried already?


Cheers,
Volker

Am 06.10.2009 um 18:45 schrieb Joshua Garnham:

> Hi.
>
> I am trying to trigger a method when A Core Data property is changed, e.g A Text Fields Text in a Table (connected to Core Data) is changed. I have looked into Key Value Observing but haven't had much luck.
>
> Cheers.
>
>
>
>
> _______________________________________________
>
> Cocoa-dev mailing list ([email protected])
>
> 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/volker_lists%40ecoobs.de
>
> This email sent to [email protected]





Send instant messages to your online friends http://uk.messenger.yahoo.com

_______________________________________________

Cocoa-dev mailing list ([email protected])

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 [email protected]

Reply via email to