• 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: BOOL madness
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

  • Prev by Date: Re: A bit of a dumb question, but I need to know...
  • Next by Date: Re: BOOL madness
  • Previous by thread: Re: BOOL madness
  • Next by thread: Re: BOOL madness
  • Index(es):
    • Date
    • Thread