Значения 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
Ответы
Ответ 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]);