Iphone 如何处理;Don';“不允许”;位置经理?

Iphone 如何处理;Don';“不允许”;位置经理?,iphone,cllocationmanager,didfailwitherror,Iphone,Cllocationmanager,Didfailwitherror,我现在还没想到这个 直到现在,每当设备要求我使用位置更新时,我都允许它 但是当我现在不允许时,位置管理器会给我kclerordenied,并且在我重新启动应用程序之前,位置管理器无法再次启动 因此,我的问题是,我应该给用户一个消息重新启动应用程序,还是有一个解决方案来重新启动位置管理器 谢谢 The Error : ERROR,Time,288787555.078,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, c

我现在还没想到这个

直到现在,每当设备要求我使用位置更新时,我都允许它

但是当我现在不允许时,位置管理器会给我kclerordenied,并且在我重新启动应用程序之前,位置管理器无法再次启动

因此,我的问题是,我应该给用户一个消息重新启动应用程序,还是有一个解决方案来重新启动位置管理器

谢谢

The Error :
ERROR,Time,288787555.078,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, const CLDaemonCommToClientRegistration*, const __CFDictionary*)",server did not accept client registration 1
WARNING,Time,288787555.108,Function,"void CLClientHandleDaemonInvalidation(__CFMessagePort*, void*)",client 1308.0 has been disconnected from daemon
 locationManager:didFailWithError:] [Line 244] Error Denied :Error Domain=kCLErrorDomain Code=1 "Operation could not be completed. (kCLErrorDomain error 1.)"
实现
-(void)locationManager:(CLLocationManager*)管理器错误:(NSError*)错误

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
    NSMutableString *errorString = [[[NSMutableString alloc] init] autorelease];

    if ([error domain] == kCLErrorDomain) {

        // We handle CoreLocation-related errors here
    switch ([error code]) {
        // "Don't Allow" on two successive app launches is the same as saying "never allow". The user
        // can reset this for all apps by going to Settings > General > Reset > Reset Location Warnings.
        case kCLErrorDenied:
            //...
            break;
        case kCLErrorLocationUnknown:
            //...
            break;
        default:
            //...
            break;
        }
    } else {
        // We handle all non-CoreLocation errors here
    }
}

所以操作系统会问这两次,如果我们不允许这两次,我们必须重新启动应用程序,不是吗?是的,如果应用程序绝对需要当前位置。不@威利是不对的。应用程序将询问一次。第一次。您无法启动第二个权限请求。苹果要求你让用户知道(当他们点击“不允许”时),如果没有地理位置,你的程序将无法运行。如果需要,请告诉用户重新启动应用程序。如果你的应用程序可以在没有它的情况下运行,那么继续并继续该应用程序。无论如何,你必须让用户知道,否则苹果不会批准你的应用。附言:他们会检查这个……所以要做得对。@Jann我知道这是一篇非常古老的帖子,但是如果你碰巧知道,这种方法在iphone 4上如何处理多任务,因为关闭应用程序只会将其发送到后台,而不会“重新启动”它?@Ryan不幸的是,没有简单的方法。苹果建议(我强烈地用斜体字“建议”)如果你的应用程序在没有位置的情况下无法工作,那么你必须告诉用户去设置->常规->位置服务,并打开你的应用程序使用位置服务的功能。否则,必须重新启动以重新请求该函数。另一个选项是简单地使用
UIApplicationExitsOnSuspend
键设置为true,这样你的应用程序就不会出现背景,而是存在。这样应用程序将重新请求许可。