许多CLLocationManager实例

Oks*_*ana 3 iphone objective-c geolocation cllocationmanager ios

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

Sri*_*aju 6

创建太多CLLocaitonManager或增加Core位置服务的更新间隔会严重耗尽电池电量.因此,不建议创建太多实例.不要看到这个需要.

一个好的做法是CLLocaitonManager在viewController中初始化一个.如果移动到另一个viewController,那么stopUpdates当前CLLocaitonManager并在新的viewController中创建一个新的管理器.这是一种模式.

另一种模式是创建一个CLLocaitonManager应用程序代理并使其在整个应用程序中可用.这就像一个全局变量.但通常避免全局声明此变量,因为它会不断消耗您的电池寿命.

所以基本上如果你的所有类只是一个viewController的一部分,那么只创建一个CLLocaitonManager并共享位置更新.如果没有,则为每个viewController创建一个.

  • 你有这方面的证据吗?我总是使用CLLocationManager创建一个单例,但是当我这样做时,我总是对苹果设计师如何假设你有多个CLLocation管理器的API感到震惊.(例如didUpdateToLocation指定CLLocationManager) (3认同)