我在.h文件中定义了一个NSMutableArray * nameArray。并在.m文件中的for循环中使用此nameArray添加字符串,如下所示:
for (int i=0; i<[data count]; i++) {
NSDictionary* place = [data objectAtIndex:i];
NSString *name=[place objectForKey:@"name"];
_nameArray = [[NSMutableArray alloc] init];
[_nameArray addObject:name];
}
NSLog(@"After loop, Name is %@", _nameArray);
实际上,它应该在这个数组中有几个名字。但是为什么它只输出一个最后添加在数组中的名字?
答案 0 :(得分:2)
你必须在循环之外创建你的数组,这是你的问题。
// Init array
_nameArray = [[NSMutableArray alloc] init];
// Fill array
for (int i=0; i<[data count]; i++) {
NSDictionary* place = [data objectAtIndex:i];
NSString *name=[place objectForKey:@"name"];
[_nameArray addObject:name];
}
// Log array
NSLog(@"After loop, Name is %@", _nameArray);
所有对象都被添加到一个自己的数组中,只有最后一个数组不会被覆盖,因此在日志中。