ios - 用 for 循环填充 NSMutableDictionary,然后它会显示最后加载的值

标签 ios nsmutabledictionary

你好,我曾尝试使用 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/

相关文章:

ios - swift - 如何在导航 Controller 中制作尺寸高度 View ?

ios - 快速将图像从设备加载到 tableView

ios - SpriteKit 内存泄漏?

ios - 如何为一个键存储多个值?

iphone - 我怎么能不重复地随机播放视频

ios - 在uipickerview中显示选中的值

ios - ios 中的应用内购买是否可以使用特定于帐户的订阅?

ios - 设置值 :forKey: Sets All Values for Specified Index

ios - 在 NSUserDefaults 中存储 NSMutableDictionary 时应用程序崩溃

ios - GAIDictionaryBuilder的NSNumber值失败