BOOL madness
BOOL madness
- Subject: BOOL madness
- From: Andre Masse <email@hidden>
- Date: Tue, 11 Nov 2008 20:08:20 -0500
Hi,
I'm having trouble converting an object to a BOOL. In my window
controller, I'm observing the model keyPath isDirty which is a BOOL.
version 1
----------------
- (void) observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
if(object == model) {
if([keyPath isEqualToString:@"isDirty"]) {
[self setDocumentEdited:[change
objectForKey:NSKeyValueChangeNewKey]];
}
}
}
This doesn't work. No matter what the value of isDirty is,
setDocumentEdited: is always called with YES;
So, I add some logging, flags and everything to see what's going on:
version 2
----------------
- (void) observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
if(object == model) {
if([keyPath isEqualToString:@"isDirty"]) {
BOOL flag = [change
objectForKey:NSKeyValueChangeNewKey];
NSLog(@"change value = %@", [change
objectForKey:NSKeyValueChangeNewKey]);
if(flag) {
[self setDocumentEdited:YES];
}
else {
[self setDocumentEdited:NO];
}
}
}
}
Now, the logging shows that [change
objectForKey:NSKeyValueChangedNewKey] toggle between 0 and 1 according
to the value of isDirty, but flag is always YES... I also tried using
a plain c bool and got the same result (true). Any idea what I'm doing
wrong?
Thanks,
Andre Masse
_______________________________________________
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