我想检测用户何时前往新的国家/地区,因此我打算将startMonitoringSignificantLocationChanges:
与reverseGeocodeLocation:
结合使用。
但是我想知道如果reverseGeocodeLocation:
返回多个地标,该怎么办。由于我需要的粒度级别只是国家级别,我可以选择任何一个地方标记,因为它们可能都是针对同一个国家的吗?
答案 0 :(得分:1)
地标包含location
属性,可让您查看哪一个与您的技术当前位置最接近。所以你可以循环搜索并找到最接近的那个,然后使用那个。但是它们应该在地理位置上与用于查找的位置非常接近,所以它们几乎肯定都是针对同一个国家的,除非你站在边境。
然而,这甚至很重要的可能性非常小。您应该从数组中选择一个元素,无论是第一个还是最后一个元素。继续使用它,好像它是唯一的一个,因为如果存在多个,真的无关紧要。您找到的大多数代码都会包含检查至少之一的代码,然后获取要使用的第一个或最后一个地标。
答案 1 :(得分:0)
typedef void (^CLGeocodeCompletionHandler)(NSArray *placemark, NSError *error);
包含CLPlacemark对象的数组。对于大多数地理编码请求, 这个数组应该只包含一个条目。但是,前向地理编码 请求可能会返回多个地标对象 指定的地址无法解析为单个位置。
在您的情况下,当您只对一个国家感兴趣时,您不应该被选择的地标所困扰。拿第一个。
[placemark firstObject];