为什么这不打印出购物清单? 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;
#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;