0

I created a NSMutableSet that holds 7 randomly generated numbers. I want to be able to pull them out of the set so I can use a switch statement to set each randomly generated number to a specific string. How am I able to pull this off?

-(IBAction)goGenerate:(id)sender
{
    NSMutableSet *eventNumbers = [[NSMutableSet alloc] initWithCapacity:7];

    while ([eventNumbers count] < 7)
    {
        NSNumber *randomNumber = [NSNumber numberWithInt:(arc4random() % 13 + 1)];

        [eventNumbers addObject:randomNumber];
    }

    //NSLog(@"eventNumbers : %@ \n\n", eventNumbers);


    //NSArray *events = [eventNumbers allObjects];

}

johnnysheps
  • 37
  • 1
  • 1
  • 7

1 Answers1

1

so I can use a switch statement to set each randomly generated number to a specific string.

You can't transmogrify a NSNumber into an NSString, but you can remove one object and replace it with another, or just create a new set like this:

NSMutableSet *eventStrings = [NSMutableSet set];
for (NSNumber *item in eventNumbers) {
    switch (item.intValue) {
        case 1: {
            [eventStrings addObject:@"The string for number 1."];
            break;
        }
        case 2: {
            [eventStrings addObject:@"The string for number 2."];
            break;
        }
        case 3: {
            [eventStrings addObject:@"The string for number 3."];
            break;
        }
        default: {
            NSLog(@"Oops, got a number I wasn't expecting!"
            break;
        }
    }
}
NSLog(@"The set of randomly selected strings is: %@", eventStrings);
Caleb
  • 124,013
  • 19
  • 183
  • 272
  • Awesome. That works. Now I just have to do a little more research to be able to set the strings to the 7 labels I have. – johnnysheps Aug 13 '13 at 19:05