Search code examples
objective-ccocoafor-loopnsarray

How to print NSArray objects via for statement or enumeration?


Possible Duplicate:
How do I iterate over an NSArray?

Here is my code (for example):

NSArray *myArray = [NSArray arrayWithObjects:@"Red", @"Blue", @"Green", nil];

I want loop through the array printing each string to the console.

Thanks.


Solution

  • Let's find the most complex way, shall we?

    NSArray *myArray = [NSArray array];
    id *objects = malloc(sizeof(id) * myArray.count);
    [myArray getObjects:objects range:NSMakeRange(0, myArray.count)];
    
    char **strings = malloc(sizeof(char *) * myArray.count);
    
    for (int i = 0; i < myArray.count; i++)
    {
         strings[i] = [objects[i] UTF8String];
    }
    
    printf("<");
    for (int i = 0; i < myArray.count; i++)
    {
         printf("%s" strings[i]);
         if (i != myArray.count - 1)
             printf(", ");
    }
    printf(">");
    
    free(objects);
    free(strings);
    

    Of course, you can always just do it like this:

    NSLog(@"%@", myArray);