我在.h文件中声明了一个NSArray对象为

@property (nonatomic, assign) NSArray  *scnArray;

- (void)viewDidLoad下的.h文件中,我创建了三个不同的NSArray对象,分别为
NSArray  *obj1 = [[NSArray alloc] initWithObjects:@"1",@"0",@"0",nil];
NSArray  *obj2 = [[NSArray alloc] initWithObjects:@"0",@"3",@"0",nil];
NSArray  *obj3 = [[NSArray alloc] initWithObjects:@"0",@"0",@"5",nil];

scnArray = [[NSArray alloc] initWithArray:obj1];
[scnArray arrayByAddingObjectsFromArray:obj2];
[scnArray arrayByAddingObjectsFromArray:obj3];

如果我从任何其他功能访问此scnArray
NSArray *caseArray = [scnArray objectAtIndex:index];//索引将为0、1、2 ...

我正在获取BAD_ACCESS_ERROR。这里有什么问题,我该如何正确使用?

最佳答案

尝试以下操作:

NSArray  *obj1 = [[NSArray alloc] initWithObjects:@"1",@"0",@"0",nil];
NSArray  *obj2 = [[NSArray alloc] initWithObjects:@"0",@"3",@"0",nil];
NSArray  *obj3 = [[NSArray alloc] initWithObjects:@"0",@"0",@"5",nil];

scnArray = [[NSArray alloc] initWithArray:obj1];
scnArray = [scnArray arrayByAddingObjectsFromArray:obj2];
scnArray = [scnArray arrayByAddingObjectsFromArray:obj3];
arrayByAddingObjectsFromArray:函数将数组B中的所有对象添加到数组A中,并返回结果(=同时包含A和B元素的数组)。

因此,您应该只获取该结果... :-)

重要事项: scnArray必须是NSMutableArray数组,而不是NSArray(正在更改,对吗?);因此请确保您也编辑了该部分...

还: NSArray *caseArray = [scnArray objectAtIndex:index];-这没有任何意义。将数组设置为scnArray的ELEMENT?它不包含数组,对吗?它只包含那些数组的元素(我们添加的元素)...

10-07 12:39