用于快速枚举的打印输出

Printout for fast enumeration

哪些代码行可以让我们通过快速枚举打印迭代而不重复前置语句?我的代码如下:

#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;
}

代码的结果如下:

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

如何让程序生成以下内容而不在之后每一行都重复 My grocery list is

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

这是你的答案:

    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;
    }
}