Search code examples
objective-cfast-enumeration

Printout for fast enumeration


What lines of code allow us to print the iterations through fast enumeration without repeating the prefatory statement? My code is the following:

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {

        // Create an empty mutable array
        NSMutableArray *listGroceries = [NSMutableArray array];

        // Add two dates to the array
        [listGroceries addObject:@"Container of milk"];
        [listGroceries addObject:@"Stick of butter"];

        // Add yesterday at the beginning of the list
        [listGroceries insertObject:@"Loaf of bread" atIndex:0];

        // How many dates are in the array?
        NSLog(@"There are %lu Groceries", [listGroceries count]);

        for (NSDate *d in listGroceries) {
            NSLog(@"My grocery list is: %@", d);
        }

    }
    return 0;
}

The result of the code is the following:

2015-03-26 14:05:42.553 Groceries[3131:129994] My grocery list is: Loaf of bread
2015-03-26 14:05:42.553 Groceries[3131:129994] My grocery list is: Container of milk
2015-03-26 14:05:42.553 Groceries[3131:129994] My grocery list is: Stick of butter

How do I make the program produce the following without the My grocery list is being repeated every line afterwards:

    My grocery list is:
    Loaf of bread
    Container of milk
    Stick of butter

Solution

  • Here is your answer :

        int main(int argc, char * argv[]) {
        @autoreleasepool {
    
        // Create an empty mutable array
        NSMutableArray *listGroceries = [NSMutableArray array];
    
        // Add two dates to the array
        [listGroceries addObject:@"Container of milk"];
        [listGroceries addObject:@"Stick of butter"];
    
        // Add yesterday at the beginning of the list
        [listGroceries insertObject:@"Loaf of bread" atIndex:0];
    
        // How many dates are in the array?
        NSLog(@"There are %lu Groceries", [listGroceries count]);
    
        printf("My grocery list is: \n");
    
        for (NSString *d in listGroceries) {
    
            printf("%s \n", d.UTF8String);
        }
    
    
        return 0;
        }
    }