NSArray in NSArray do not return the image I want
Posted
by Tibi
on Stack Overflow
See other posts from Stack Overflow
or by Tibi
Published on 2010-05-11T20:02:06Z
Indexed on
2010/05/11
20:04 UTC
Read the original article
Hit count: 522
Hi there,
I've got a code snippet here that I can't make working.
NSUInteger i;
//NSMutableArray *textures = [[NSMutableArray alloc] initWithCapacity:kNumTextures];
//NSMutableArray *texturesHighlighted = [[NSMutableArray alloc] initWithCapacity:kNumTextures];
NSMutableArray *textures= [[NSMutableArray alloc] init];
for (i = 1; i <= kNumTextures; i++)
{
NSString *imageName = [NSString stringWithFormat:@"texture%d.png", i];
NSString *imageNameHighlighted = [NSString stringWithFormat:@"texture%d_select.png", i];
UIImage *image = [UIImage imageNamed:imageName];
UIImage *imageHighlighted = [UIImage imageNamed:imageNameHighlighted];
//NSArray *pics = [[NSArray alloc] initWithObjects:(UIImage)image,(UIImage)imageHighlighted,nil];
NSArray *pics = [NSArray arrayWithObjects:image,imageHighlighted,nil];
[textures addObject:pics];
[pics release];
}
//select randomly the position of the picture that will be represented twice on the board
NSInteger randomTexture = arc4random()%([textures count]+1);
//extract image corresponding to the randomly selected index
//remove corresponding pictures from textures array
NSArray *coupleTexture = [textures objectAtIndex:randomTexture];
[textures removeObjectAtIndex:randomTexture];
//create the image array containing 1 couple + all other pictures
NSMutableArray *texturesBoard = [[NSMutableArray alloc] initWithCapacity:kNumPotatoes];
[texturesBoard addObject:coupleTexture];
[texturesBoard addObject:coupleTexture];
[coupleTexture release];
NSArray *pics = [[NSArray alloc] init];
for (pics in textures) {
[texturesBoard addObject:pics];
}
[pics release];
//shuffle the textures
//[texturesBoard shuffledMutableArray];
//Array with masks
NSMutableArray *masks= [[NSMutableArray alloc] init];
for (i = 1; i <= kNumMasks; i++)
{
NSString *maskName = [NSString stringWithFormat:@"mask%d.png", i];
UIImage *mask = [UIImage imageNamed:maskName];
//NSArray *pics = [[NSArray alloc] initWithObjects:mask,nil];
[masks addObject:mask];
//[pics release];
[maskName release];
[mask release];
}
//Now mask all images in texturesBoard
NSMutableArray *list = [[NSMutableArray alloc] init];
for (i = 0; i <= kNumMasks-1; i++)
{
//take on image couple from textures
NSArray *imgArray = [texturesBoard objectAtIndex:i];
UIImage *mask = [masks objectAtIndex:i];
//mask it with the mask un the array at corresponding index
UIImage *img1 =(UIImage *) [imgArray objectAtIndex:0];
UIImage *img2 =(UIImage *) [imgArray objectAtIndex:1];
UIImage *picsMasked = [self maskImage:(UIImage *)img1 withMask:(UIImage *)mask];
UIImage *picsHighlightedMasked = [self maskImage:(UIImage *)img2 withMask:(UIImage *)mask];
//Init image with highlighted status
TapDetectingImageView *imageView = [[TapDetectingImageView alloc] initWithImage:picsMasked imageHighlighted:picsHighlightedMasked];
[list addObject:imageView];
}
The problem here is that : img1 and img2, are not images but rather NSArray with multiple entries. Ican't figure why... dos any fresh spirit here could provide me with some clue to fix.
maaany thanks.
© Stack Overflow or respective owner