你好,我曾尝试使用 for 循环用两个 NSMutableArray 数据填充 NSMutableDictionary,当循环结束时,NSMutableDictionary 只显示最后加载的值,有什么问题吗?按照代码
-(void)calculateDistance
{
self.distanceArray=[[NSMutableArray alloc]init];
self.dict=[[NSMutableDictionary alloc]init];
for (int i=0; i<[self.nombre count]; i++) {
CLLocation *shopPosition=[[CLLocation alloc]initWithLatitude:[[self.latitud objectAtIndex:i] floatValue]longitude:[[self.longitud objectAtIndex:i]floatValue]];
self.userPosition=[[CLLocation alloc]initWithLatitude:self.currentLat longitude:self.currentLong];
self.distance=[shopPosition distanceFromLocation:self.userPosition];
[self.distanceArray addObject:[NSNumber numberWithFloat:self.distance]];
[self.dict setObject:[self.distanceArray objectAtIndex:i] forKey:@"distance"];
[self.dict setObject:[self.nombre objectAtIndex:i] forKey:@"nombre"];
}
NSLog(@" DICT %@",self.dict);
非常感谢
最佳答案
您始终将新值设置为相同的键:
[self.dict setObject:[self.distanceArray objectAtIndex:i] forKey:@"distance"];
[self.dict setObject:[self.nombre objectAtIndex:i] forKey:@"nombre"];
您应该改为使用 NSMutableArray 并在每个循环周期添加一个新的 NSDictionary。
NSDictionary *dict = @{@"distance" : self.distanceArray[i],
@"nombre" : self.nombre[i]
};
[self.newMutArray addObject: dict];
关于ios - 用 for 循环填充 NSMutableDictionary,然后它会显示最后加载的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17450003/