我在.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?它不包含数组,对吗?它只包含那些数组的元素(我们添加的元素)...