use*_*926 9 xcode cocoa objective-c ios
我NSArray在.h文件中声明了一个对象
@property (nonatomic, assign) NSArray *scnArray;
Run Code Online (Sandbox Code Playgroud)
在- (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];
Run Code Online (Sandbox Code Playgroud)
如果我从任何其他函数访问此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];
Run Code Online (Sandbox Code Playgroud)
该arrayByAddingObjectsFromArray:函数将数组B中的所有对象添加到数组A,并返回结果(=包含A和B元素的数组).
所以,你应该简单地得到那个结果...... :-)
重要提示: scnArray必须是一个NSMutableArray数组,而不是NSArray(它正在改变,对吧?); 所以一定要编辑那个部分......
还有: NSArray *caseArray = [scnArray objectAtIndex:index]; - 这没有任何意义.将数组设置为ELEMENT的scnArray?它不包含数组,对吧?它只包含那些数组的ELEMENTS(我们添加的数组)......
| 归档时间: |
|
| 查看次数: |
15428 次 |
| 最近记录: |