Search code examples
cobjective-carraysbooleanprimitive

Objective C Boolean Array


I need to utilize an array of booleans in objective-c. I've got it mostly set up, but the compiler throws a warning at the following statement:

[updated_users replaceObjectAtIndex:index withObject:YES];

This is, I'm sure, because YES is simply not an object; it's a primitive. Regardless, I need to do this, and would greatly appreciate advice on how to accomplish it.

Thanks.


Solution

  • Yep, that's exactly what it is: the NS* containers can only store objective-C objects, not primitive types.

    You should be able to accomplish what you want by wrapping it up in an NSNumber:

    [updated_users replaceObjectAtIndex:index withObject:[NSNumber numberWithBool:YES]]

    or by using @(YES) which wraps a BOOL in an NSNumber

    [updated_users replaceObjectAtIndex:index withObject:@(YES)]]

    You can then pull out the boolValue:

    BOOL mine = [[updated_users objectAtIndex:index] boolValue];