Compare/Lookup 两个 NSArray 并得到正确的值

Compare/Lookup two NSArray and get the correct value

在我的项目中,我将两个不同的数据集存储在两个单独的数组中。现在,如果某些字段相等,我正在尝试执行 lookup/comparing,然后添加额外的值,例如:

数据集 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);

    }

第二个数据集 returns 计数较低,但输出也存储在数据集 1 中。数据集 1 包含额外的值,例如 (lon/lat) GPS 坐标,我想将其添加到数据集 2 .

因此,检查数据集 1 的值是否等于数据集 2 的值,然后将额外的 (lon/lat) 值添加到数据集 1。

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

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

我希望这是可以理解的。

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

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

   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;
            }
        }
    }