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

时间:2016-07-17 08:36:17

标签: objective-c for-loop nsstring nsmutablearray nsarray

#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循环似乎是昙花一现。

1 个答案:

答案 0 :(得分:0)

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

首先,您需要初始化杂货:

NSMutableArray *groceries = [NSMutableArray new];

或更喜欢我的方式:

NSMutableArray *groceries = @[].mutableCopy;

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

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