Re: Notification when changes occur to an array?
Re: Notification when changes occur to an array?
- Subject: Re: Notification when changes occur to an array?
- From: Julio Cesar Silva dos Santos <email@hidden>
- Date: Wed, 27 Sep 2006 12:39:19 -0300
The method registerObservers must be declared like this:
[spotlights addObserver:self forKeyPath:@"@count"
options:NSKeyValueObservingOptionNew context:NULL];
Because the key is @count, not count by itself.
Julio Cesar Silva dos Santos
email@hidden
Blogjective-C
http://www.jcs.santos.nom.br/wp
FetchYourLyrics
http://www.jcs.santos.nom.br/fyl/fyl.html
On 27/09/2006, at 10:43, Mattias Arrelid wrote:
It sounds like you don't want a notification really. Use Key
Value Observing instead. That will tell you when an item is added
or removed from the array, and even what the new/old objects are.
KVO seems more appropriate, I agree on that! Thanks for pointing me
in the right direction.
I'm still having some difficulties grasping how I'm supposed to get
it working though. I have a simple class with an NSMutableArray,
called "spotlights". If I want to observe changes to it's count, I
assume I'm supposed to have the following two methods in my class
(the class that contains the array):
- (void)registerObservers
{
[spotlights addObserver: self
forKeyPath: @"count"
options: NSKeyValueObservingOptionNew
context: NULL];
}
- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
if ([keyPath isEqual:@"count"]) {
NSLog(@"The count did change.");
}
}
Btw, I call "registerObservers" in my init method of my class.
When running the example, the application exits due to SIGNAL 5
(SIGTRAP). This is what follows:
2006-09-27 15:36:35.835 Prototype[4163] An uncaught exception was
raised
2006-09-27 15:36:35.835 Prototype[4163] [<NSCFArray 0x350f00>
addObserver:forKeyPath:options:context:] is not supported. Key
path: count
2006-09-27 15:36:35.835 Prototype[4163] *** Uncaught exception:
<NSInvalidArgumentException> [<NSCFArray 0x350f00>
addObserver:forKeyPath:options:context:] is not supported. Key
path: count
This sounds like the NSMutableArray isn't completely KVO? Like
there is no method for setting a new count? Or am I wrong? *confused*
Thanks on advance
/ Mattias
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40brturbo.com.br
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden