NSArray и bool значения - PullRequest
       5

NSArray и bool значения

13 голосов
/ 22 сентября 2010

Может ли 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

Ответы [ 2 ]

39 голосов
/ 22 сентября 2010

Да, просто оберните логические значения в 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
4 голосов
/ 03 марта 2014

Чтобы завершить ответ Филиппа, вы должны использовать буквенную строку, введенную в 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]);
...