I’m trying to change a value in a multidimensional array but getting a compiler error:
warning: passing argument 2 of 'setValue:forKey:' makes pointer from integer without a cast
This is my content array:
NSArray *tableContent = [[NSArray alloc] initWithObjects:
[[NSArray alloc] initWithObjects:@"a",@"b",@"c",nil],
[[NSArray alloc] initWithObjects:@"d",@"e",@"f",nil],
[[NSArray alloc] initWithObjects:@"g",@"h",@"i",nil],
nil];
This is how I’m trying to change the value:
[[tableContent objectAtIndex:0] setValue:@"new value" forKey:1];
Solution:
[[tableContent objectAtIndex:0] setValue:@"new val" forKey:@"1"];
So the array key is a string type – kinda strange but good to know.
You don’t want to
alloc+initfor the sub-arrays because the retain count of the sub-arrays will be too high (+1 for thealloc, then +1 again as it is inserted into the outer array).