I declared a NSArray
object in .h file as
@property (nonatomic, assign) NSArray *scnArray;
and in .h file under - (void)viewDidLoad
I created three different NSArray
objects as
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];
and if I access this scnArray from any other function
NSArray *caseArray = [scnArray objectAtIndex:index];
//index will be 0, 1, 2...
I am getting BAD_ACCESS_ERROR
. What is the problem here and how can I correct to use it?
Try this :
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];
The arrayByAddingObjectsFromArray:
function adds all objects from array B to array A, and return the result (=the array containing both A's and B's elements).
So, you should simply GET that result... :-)
IMPORTANT : scnArray
MUST be an NSMutableArray
array, and NOT an NSArray
(it's changing, right?); so make sure you edit that part too...
ALSO : NSArray *caseArray = [scnArray objectAtIndex:index];
- this doesn't make any sense. Setting an array to an ELEMENT of the scnArray
? It doesn't contain arrays, right? It just contains ELEMENTS of those arrays (the ones we've added)...
arrayByAddingObject:
does not add the new object to the receiver, it creates a completely new array and returns it. You should use something like:
scnArray = [[NSArray alloc] initWithObjects: obj1, obj2, obj3, nil];
Don't forget that if you are not using ARC or GC, all of these arrays will need to be released at some point.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With