Re: BOOL madness
Re: BOOL madness
- Subject: Re: BOOL madness
- From: Roland King <email@hidden>
- Date: Wed, 12 Nov 2008 09:15:14 +0800
[ [ change objectForKey:NSKeyValueChangeNewKey ] boolValue ]?
it's an object, not a bool, it prints as a bool because the object knows
it's a bool, but you are just testing the object pointer which isn't 0x00
Andre Masse wrote:
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
_______________________________________________
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
References: | |
| >BOOL madness (From: Andre Masse <email@hidden>) |