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.

Jay is the CEO and founder of WP Hosting, a boutique style managed WordPress hosting and support service. He has been working with Plesk since version 9 and is a qualified Parallels Automation Professional. In his spare time he likes to develop iOS apps and WordPress plugins, or draw on tablet devices. He blogs about his coding journey at and