How to store a BOOL as NSNumber

You can create an NSNumber with a BOOL like this:

BOOL myBool = YES;
NSNumber *boolNumber = [NSNumber numberWithBool:myBool];
NSLog(@"boolNumber is %@", boolNumber); // gives 1 for YES and 0 for NO

It is technically the equivalent of creating an NSNumber with a literal @1 or @0.

To turn the NSNumber back into a BOOL use this:

BOOL anotherBool = [NSNumber numberWithBool:YES];

NSLog(@"anotherBool is %i", anotherBool); // gives 1 for YES and 0 for NO

Any NSNumber that is not zero will give a BOOL of YES when converted this way, including negative numbers.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.