【问题标题】:Compare/Lookup two NSArray and get the correct value比较/查找两个 NSArray 并获得正确的值
【发布时间】:2016-03-22 18:19:56
【问题描述】:

在我的项目中,我有两个不同的数据集存储在两个单独的数组中。现在我正在尝试查找/比较某些字段是否相等,然后添加额外的值,例如:

数据集 1:

for ( int i=0; i<[self.plarray count]; i++)
    {
        Places *object2 = [self.plarray objectAtIndex:i];
        ePlaces = object2.pCitpr;

        NSLog(@"FD: %@", ePlaces);
    }

数据集 2:

for ( int i=0; i<[self.data count]; i++)
    {

         Mpobject *object3 = [self.data objectAtIndex:i];
         ePlaces2 = object3.oLocation;

        NSLog(@"MP: %@", ePlaces2);

    }

第二个数据集返回的计数较低,但输出也存储在数据集 1 中。数据集 1 包含额外的值,例如我想添加到数据集 2 的(经度/纬度)GPS 坐标。

所以,检查 dataset1 的值是否等于 dataset2 的值,然后将额外的 (lon/lat) 值添加到 dataset1。

我需要这样做的原因是因为我的项目中有一个 JSON 文件,其中包含来自所有城市的 GPS 坐标,需要在我的 mapView 中将其设置为注释。

现在...数据集 2 只有城市名称,所以没有坐标,我可以使用 CLGeocoder 对坐标进行反向查找,但如果请求太多,它会发出警告。 Apple 的文档还说您每分钟只能进行一次查找。

我希望它是可以理解的。

附言。请原谅我的语言,我来自荷兰。

【问题讨论】:

  • 你的问题到底是什么?
  • 我想做一些与这个主题类似的事情:stackoverflow.com/questions/5225197/…,但还要添加额外的值。
  • dataset1 和 dataset2 有可以比较的属性吗?
  • 是的,它具有.. 数据集 1 具有与数据集 2 的输出相同的属性,但数据集 1 还具有额外的值(经度/纬度)。

标签: ios objective-c json nsarray mkmapview


【解决方案1】:

如果不知道每个对象的属性,很难知道如何为此提供代码,但您只需要遍历两个数据集并比较相关属性,然后分配值。

   for (int i =0; i<[self.plarray count]; i++) {
        for (int j = 0; j<[self.data count]; j++) {

            Places *object = [self.plarray objectAtIndex:i];
            Mpobject *object1 = [self.data objectAtIndex:j];

            if ([object.name isEqualToString: object1.name])
            {
                object1.lat = object.lat;
                object1.lon = object.lon;
            }
        }
    }

【讨论】:

  • 你拯救了我的一天!伟大的!!太感谢了。解决了。​​
猜你喜欢
  • 2019-10-07
  • 1970-01-01
  • 1970-01-01
  • 2019-10-25
  • 1970-01-01
  • 1970-01-01
  • 2019-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多