Подтвердить что ты не робот

Значения NSArray и bool

Может ли NSArray хранить массив значений bool?

Следующий код запускает

BOOL b = NO;
NSMutableArray *array = [[NSMutableArray alloc] init];

[array addObject:[NSNumber numberWithBool:b]];

NSLog(@"value is %d", [array objectAtIndex:0] );

Однако я не получаю значение 0 для NO, как ожидалось. Вместо этого я получаю

- 37736096

4b9b3361

Ответ 1

Да, просто оберните булевы в NSNumber:

BOOL b = YES;

[array addObject:[NSNumber numberWithBool:b]];

Если вы хотите получить логические значения, используйте это:

BOOL b = [[array objectAtIndex:i] boolValue]; 
// only if you know for sure it contains a boolean

Ответ 2

Чтобы ответить Philippe, вы должны использовать литровую строку, представленную в XCode 4.4, с выпуском Apple LLVM Compiler версии 4.0.

Ваш код будет выглядеть следующим образом:

NSMutableArray *array = [[NSMutableArray alloc] init];

array[0] = @YES;

//Value is 1
NSLog(@"Value is %d:", [array[0]  boolValue]);