Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
startUpdatingMyLocation是否必须呼叫位置经理';iphone sdk中的DidUpdateLocation方法_Iphone_Objective C_Cllocationmanager_Cllocation - Fatal编程技术网

startUpdatingMyLocation是否必须呼叫位置经理';iphone sdk中的DidUpdateLocation方法

startUpdatingMyLocation是否必须呼叫位置经理';iphone sdk中的DidUpdateLocation方法,iphone,objective-c,cllocationmanager,cllocation,Iphone,Objective C,Cllocationmanager,Cllocation,我需要澄清一下。startUpdatingMyLocation方法是否必须调用DidUpdateLocation?当位置被更新时,didUpdateToLocation方法不是被自动调用吗 盖伊先生,请澄清我的澄清。文件说明 通过调用startUpdatingLocation启动标准位置服务 方法。此服务最适合需要的应用程序 对位置事件的交付进行更细粒度的控制。 具体而言,它考虑了所需精度中的值 和distanceFilter属性,以确定何时传递新事件。 用户需要标准定位服务的精度 导航应用程序

我需要澄清一下。startUpdatingMyLocation方法是否必须调用DidUpdateLocation?当位置被更新时,didUpdateToLocation方法不是被自动调用吗

盖伊先生,请澄清我的澄清。

文件说明


通过调用startUpdatingLocation启动标准位置服务 方法。此服务最适合需要的应用程序 对位置事件的交付进行更细粒度的控制。 具体而言,它考虑了所需精度中的值 和distanceFilter属性,以确定何时传递新事件。 用户需要标准定位服务的精度 导航应用程序或任何高精度的应用程序 需要位置数据或定期更新流。然而, 这些服务通常要求安装位置跟踪硬件 启用时间更长,这可能会导致更高的功率 用法

对于不需要常规位置事件流的应用程序, 考虑使用StistMealOrgIngimeListCurror更改方法 开始传递事件。这种方法更合适 对于大多数只需要初始用户的应用程序 仅当用户移动重要位置时,位置修复和更新才需要 距离。此接口仅在检测到新事件时才传递新事件 更改设备的相关基站,从而减少 频繁更新和显著降低功耗

无论您使用哪种位置服务,位置数据都是 通过位置管理器的关联 委托对象。因为返回一个 初始位置,位置管理器通常提供 以前缓存的位置数据立即提供,然后提供更多 可用的最新位置数据。因此它是 检查任何位置对象的时间戳总是一个好主意 在采取任何行动之前。如果两个位置服务都已启用 同时,它们使用同一组委托传递事件 方法


因此,您可以使用这两种方法中的任何一种,即
startUpdatingLocation
startmonitoringsignitinglocationchanges
来获取位置更新,但您必须为调用的委托方法调用其中任何一种方法。(IMHO)

通过调用startUpdatingLocation方法启动标准定位服务。此服务最适合于需要对位置事件的传递进行更细粒度控制的应用程序。具体来说,它会考虑desiredAccuracy和distanceFilter属性中的值,以确定何时传递新事件。导航应用程序或任何需要高精度定位数据或定期更新流的应用程序都需要标准定位服务的精度。但是,这些服务通常要求启用位置跟踪硬件的时间更长,这可能导致更高的功耗

对于不需要定期的位置事件流的应用程序,请考虑使用StistMeNoReTimeMalimeLoistCurror方法来启动事件的传递。这种方法更适合于大多数只需要初始用户位置定位,并且仅当用户移动了相当长的距离时才需要更新的应用程序。此接口仅在检测到设备相关基站的变化时才提供新事件,从而减少更新频率并显著降低功耗


无论使用哪种位置服务,位置数据都会通过位置管理器关联的委托对象报告给应用程序。由于返回初始位置可能需要几秒钟的时间,因此位置管理器通常会立即交付以前缓存的位置数据,然后在可用时交付更多最新的位置数据。因此,在执行任何操作之前,最好检查任何位置对象的时间戳。如果同时启用两个位置服务,它们将使用相同的委托方法集传递事件。

单次调用startUpdatingLocation方法是否足够。是的。然后,如果值中有任何重大更改,它将继续调用委托方法。(我想您也可以指定这一点。)感谢您分享Ankit的信息。。!!但是,在任何地方都必须使用StopUpdateLocation吗?不,不是,但您应该在完成位置值后立即停止,因为位置更新需要大量电池和处理能力。例如,如果您在同一个视图控制器上,并且您拥有坐标,并且您不需要定期使用坐标,那么您应该停止更新。