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.