如果我初始化跟踪用户位置的其他CLLocaitonManager实例,是否会增加负载?还是应该在类之间使用一个CLLocaitonManager实例?
创建过多的CLLocationManager
或增加Core定位服务的更新间隔会严重耗尽电池。因此,不建议创建太多实例。看不到这一点。
一种好的做法是在viewController中初始化一个CLLocationManager
。如果移动到另一个viewController,则在当前CLLocationManager
上停止update,并在新的viewController中创建一个新的管理器。这是一种模式。
另一种模式是在应用程序委托中创建CLLocationManager
并将其在整个应用程序中都可用。这就像一个全局变量。但通常避免对该变量进行全局声明,因为它会不断消耗您的电池寿命。
所以基本上,如果您所有的类都只是一个viewController的一部分,则仅创建一个CLLocationManager
并共享位置更新。如果没有,则为每个viewController创建一个。
定位服务要求给定设备上存在特定的硬件。这就是为什么,创建多少个CLLocationManager实例无关紧要。通常避免全局声明此变量,因为它会不断消耗您的电池寿命。每当您需要查找用户位置时,明智的方法是停止并每次启动。