许多CLLocationManager实例

问题描述 投票:3回答:2

如果我初始化跟踪用户位置的其他CLLocaitonManager实例,是否会增加负载?还是应该在类之间使用一个CLLocaitonManager实例?

iphone objective-c ios geolocation cllocationmanager
2个回答
6
投票

创建过多的CLLocationManager或增加Core定位服务的更新间隔会严重耗尽电池。因此,不建议创建太多实例。看不到这一点。

一种好的做法是在viewController中初始化一个CLLocationManager。如果移动到另一个viewController,则在当前CLLocationManager上停止update,并在新的viewController中创建一个新的管理器。这是一种模式。

另一种模式是在应用程序委托中创建CLLocationManager并将其在整个应用程序中都可用。这就像一个全局变量。但通常避免对该变量进行全局声明,因为它会不断消耗您的电池寿命。

所以基本上,如果您所有的类都只是一个viewController的一部分,则仅创建一个CLLocationManager并共享位置更新。如果没有,则为每个viewController创建一个。


0
投票

定位服务要求给定设备上存在特定的硬件。这就是为什么,创建多少个CLLocationManager实例无关紧要。通常避免全局声明此变量,因为它会不断消耗您的电池寿命。每当您需要查找用户位置时,明智的方法是停止并每次启动。

© www.soinside.com 2019 - 2024. All rights reserved.