I’m trying to build words in arrays by their key value in a dictionary. However, it won’t work the way I’d like it to, because I can’t “copy” a UIImageView.
It would be PERFECT, if when adding the letter from the dictionary to an array, it gives me a copy instead of the real object. I don’t want to make multiple images of the same letter and add it to the dictionary, because then I could no longer call it by key “s” or “a”, and I need more than one array to use the same letters at at time.
What can I do?
//How I create the letters
char s = 's';
NSString *key = [NSString stringWithFormat:@"%c", s];
alphabetS = [[UIImageView alloc] init]];
[alphabetS setImage:[UIImage imageNamed:@"s.png"]];
[allTilesDictionary setObject:alphabetS forKey:key];
[alphabetS release];
//How I use the imageviews from the dictionary
NSMutableArray *wordOne = [[NSMutableArray alloc] initWithObjects:[allTilesDictionary objectForKey:@"s"],[allTilesDictionary objectForKey:@"h"],[allTilesDictionary objectForKey:@"o"],[allTilesDictionary objectForKey:@"p"], nil];
EDIT: My solution. It works perfectly.
for (UIImageView *letters in wordOne)
{
newLetter = [[UIImageView alloc] init];
newLetter.image = letters.image;
newLetter.userInteractionEnabled = YES;
//I can now either lay them out wherever I want on the view, or add them to a new array.
}
Your original code, slightly modified:
Your use of that code, slightly modified:
No unnecessary UIImageViews created.