Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 满是脏物的垃圾堆_Objective C - Fatal编程技术网

Objective c 满是脏物的垃圾堆

Objective c 满是脏物的垃圾堆,objective-c,Objective C,我正在尝试创建一个布尔值数组。请问我要做多少 NSArray *array = [[NSArray alloc] init]; array[0] = YES; 这对我不起作用 谢谢使用[NSNumber numberWithBool:YES]获取可以放入集合中的对象。NSArray不是c阵列。不能使用array[foo]访问NSArray的值 但是,您可以在objective-c中使用c类型数组而不会出现问题 目标C方法将是: NSMutableArray *array = [[NSMutab

我正在尝试创建一个布尔值数组。请问我要做多少

NSArray *array = [[NSArray alloc] init];
array[0] = YES;
这对我不起作用


谢谢

使用
[NSNumber numberWithBool:YES]
获取可以放入集合中的对象。

NSArray不是c阵列。不能使用
array[foo]访问NSArray的值
但是,您可以在objective-c中使用c类型数组而不会出现问题

目标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标准编译器clang的新版本,请理解。当您使用新版本的clang时,您将能够使用
数组[0]=@YES

似乎您将c数组与objc NSArray混淆了。NSArray更像是Java中的一个数组,您可以在其中添加对象,但不能添加NSInteger、BOOL、double等值。如果您希望在NSArray中存储此类值,首先需要创建一个可变数组:

NSMutableArray* array = [[NSMutableArray alloc] init];
然后向其中添加适当的对象(在本例中,我们将使用NSNumber存储布尔值):

差不多就是这样!如果您希望访问bool值,只需调用:

BOOL yourBoolValue = [[array objectAtIndex:0] boolValue];
干杯,
Pawel

数组[0]=[NSNumber numberWithBool:是];给我一个“分配中的不兼容类型”错误[array addObject:[NSNumber numberWithBool:是]]我正在尝试,并且它给我***由于未捕获的异常“NSInvalidArgumentException”终止应用程序,原因:'+[NSNumber numberWithBool::]:发送到类的无法识别的选择器应该是[NSNumber numberWithBool:是]。对不起,我弄错了
BOOL yourBoolValue = [[array objectAtIndex:0] boolValue];