为什么这不打印出购物清单? NSMutableArray 用于快速循环枚举

why is this not printing out a grocery list? NSMuteableArray For fast loop enumeration

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSMutableArray *groceries;
        NSString *a = (@"loaf of bread");
        NSString *b = (@"stick of butter");
        NSString *c = (@"big ass cookie");

        [groceries addObject:a];
        [groceries addObject:b];
        [groceries addObject:c];

        for (NSString *d in groceries){
            NSLog(@"%@", d);
        }
    }

    return 0;
}

为什么这不起作用?怎么了?谢谢。 我现在似乎无法弄清楚,for循环挑衅地似乎挂断了。

虽然您没有初始化 NSMutableArray,但它是 nil。将对象添加到未初始化的可变数组总是给出 nil。

首先你需要初始化杂货:

NSMutableArray *groceries = [NSMutableArray new];

或我喜欢的更多:

NSMutableArray *groceries = @[].mutableCopy;

例如,在您的情况下,您可以这样声明:

NSMutableArray *groceries = @[@"loaf of bread", @"stick of butter", @"big ass cookie"].mutableCopy;