由于应用程序的启动时间,我只想问一次用户的位置。
我的意思是,每次用户启动该应用程序时,都要求其位置服务(仅一次)。

我想用dispatch_once这样做。

static dispatch_once_t oncePredicate;

dispatch_once(&oncePredicate, ^{

    [self.locationManager startUpdatingLocation];
});

这是最好的方法吗?还是有更好的方法?

提前致谢!

最佳答案

通常,您无需担心多次调用startUpdatingLocation的麻烦。相反,您应该做的是添加逻辑以确保仅在适当时才调用它-即在对用户有意义之后才进行调用。

通常,这意味着存储一些状态(可能是用户默认设置),并在调用startUpdatingLocation之前检查该状态。特别是,只有在用户到达您应用中的特定阶段后才可以设置状态,在这种情况下,明智的做法是征求他们的许可(并且他们已经批准了,尽管需要更频繁地进行此检查,因为他们以后可以决定撤消该检查)身份验证权限)。

关于ios - 使用dispatch_once启动定位服务,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26731340/

10-09 18:06
查看更多