NSArray和bool值

时间:2010-09-22 13:11:48

标签: objective-c arrays cocoa-touch nsarray boolean

NSArray可以保存一组bool值吗?

以下代码运行

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

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

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

但是,我没有按预期获得NO值0。相反,这就是我得到的

  

值为37736096

2 个答案:

答案 0 :(得分:39)

是的,只需将布尔值包装在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

答案 1 :(得分:4)

要完成Philippe的回答,您应该使用 XCode 4.4 中引入的litteral字符串,并发布 Apple LLVM编译器4.0版

您的代码如下所示:

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

array[0] = @YES;

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