我使用的是CLLocationManager,如果该程序是第一次安装,它要求用户接受或拒绝共享他的位置。我想要的是自己编程等待,直到用户提示。
现在的问题是我和usleep()在那里等着
while ([CLLocationManager authorizationStatus] == USER_NOT_PROMPTED) {
usleep(10000);
}但这会导致实际的iPhone被锁定,位置共享问题不会弹出,因此程序会挂起。有没有办法在单独的线程中运行这些用户提示?我使用的是iOS 6.1
发布于 2013-07-29 11:16:18
你的程序被冻结了,因为你阻塞了run循环,这使得系统不可能提示用户允许使用location。不要这样做。如果你想让用户立即允许或拒绝使用他们的位置,只需在你的应用程序早期进行位置管理器呼叫。如果您不希望用户在做出决定之前不能做任何其他事情,那么就不要让他们做任何事情--也许可以显示一个空白屏幕。
不过,这听起来不像是一个好的用户体验,所以最好是找到一种让他们尽可能多做事情的方法。为什么不假设用户拒绝你使用他们的位置,直到他们做出不同的决定呢?
https://stackoverflow.com/questions/17915367
复制相似问题