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;
}
}
}
在我的项目中,我将两个不同的数据集存储在两个单独的数组中。现在,如果某些字段相等,我正在尝试执行 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;
}
}
}