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
答案 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]);