I’m trying to store 25 objects in an array
for (int iy=0; iy<5; iy++) {
for (int ix=0; ix<5; ix++) {
TerrainHex *myObject = [[TerrainHex alloc] initWithName:(@"grassHex instance 10000") width:mGameWidth height:mGameHeight indexX:ix indexY:iy];
myObject.myImage.y += 100;
[TerrainHexArray addObject:myObject];
[self addChild:(id)myObject.myImage];
}
}
NSLog(@"Terrain array: %u", [TerrainHexArray count]);
The log is coming back as zero though.
In the .h file I have
@property NSMutableArray *TerrainHexArray;
And in the .m file I have..
@synthesize TerrainHexArray;
I just tried what someone suggested below, which is..
NSMutableArray *TerrainHexArray = [[NSMutableArray] alloc] init];
But it’s just giving me a warning saying expected identifier.
It’s almost certain that TerrainHexArray does not exist when you’re doing the addObject calls and the NSLog. You say you tried adding the alloc/init after someone suggested it, which indicates you don’t understand object management in Objective-C.
I’d suggest you step back, find a book on Objective-C, and read at least the first few chapters (up through the discussion of alloc/init et al) before you attempt any more coding.
Incidentally, it’s standard C++/Objective-C coding practice (except in Microsoft) to use identifiers with a leading lower case character for instance names, reserving leading caps for types/class names.