我想创建一个布尔值的NSArray。请问我有多少人?NSArray充满布尔
NSArray *array = [[NSArray alloc] init];
array[0] = YES;
这对我不起作用。
感谢
我想创建一个布尔值的NSArray。请问我有多少人?NSArray充满布尔
NSArray *array = [[NSArray alloc] init];
array[0] = YES;
这对我不起作用。
感谢
NSArrays不是c数组。你不能访问一个NSArray的值与array[foo];
但你可以在Objective-C中使用c类型数组没有问题。
Objective-C的方法是:
NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:[NSNumber numberWithBool:YES]];
//or
[array addObject:@(NO)];
...
BOOL b = [[array objectAtIndex:0] boolValue];
....
[array release];
编辑:铿锵的新版本,现在的标准编译器的Objective-C,了解Object subscripting。当你使用叮当的新版本,你将能够使用array[0] = @YES
使用[NSNumber numberWithBool: YES]
得到一个对象,你可以把收藏。
阵列[0] = [NSNumber的numberWithBool:YES];给我一个'不兼容的类型赋值'错误 – Lilz 2010-10-08 09:19:55
[数组addObject:[NSNumber numberWithBool:YES]] – 2010-10-08 09:22:33
好像你已经混淆了c数组与objc NSArray。 NSArray在Java中更像是一个list,你可以在其中添加对象,但不能像NSInteger,BOOL,double等值。如果你希望将这些值存储在NSArray中,你首先需要创建一个可变数组:
NSMutableArray* array = [[NSMutableArray alloc] init];
,然后添加适当的对象给它(在这种情况下,我们将使用的NSNumber来存储您的BOOL值):
[array addObject:[NSNumber numberWithBool:yourBoolValue]];
而这几乎是它!如果要访问bool值,只需要调用:
BOOL yourBoolValue = [[array objectAtIndex:0] boolValue];
干杯, 的Pawel
我试图,它给我***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'+ [ NSNumber numberWithBOOL:]:发送到类 – Lilz 2010-10-08 09:37:01
的无法识别的选择器应该是[NSNumber numberWithBool:YES]。对不起,我的错误 – 2010-10-08 09:38:40
哦,非常感谢! – Lilz 2010-10-08 09:43:54