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