2014-09-23 92 views
3

我的应用在第一个ViewController中有一个地图。在iOS 7上,它会在第一次运行时自动显示位置权限弹出窗口。但是,在iOS 8上,需要进行一些更改。我已经包含了关键NSLocationWhenInUseUsageDescription我Info.plist文件,并在AppDelegate中,我说:iOS 8不请求位置权限

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // ... 

    if ([CLLocationManager authorizationStatus] == kCLAuthorizationStatusNotDetermined) { 
    CLLocationManager *locationManager = [[CLLocationManager alloc] init]; 
    [locationManager requestWhenInUseAuthorization]; 
    } 

    // ... 
} 

然而,在弹出从未显示。

用户界面有一个按钮可以将地图带回用户的位置。在按钮的方法中,我已经包含了与上面相同的一段代码,以查看它是否有帮助。
这次弹出确实会出现,但它只是闪烁在屏幕上,用户无法与之交互。

在设置>隐私>定位服务> MyApp有我期望的两个选项:永远不会和当使用应用程序。它们中没有一个是默认标记的。此外,我在Info.plist中设置的“应用程序说明”在第二个选项中正确显示。

如果我强制标记第二个选项,该应用可以正常工作,但我不希望用户手动浏览选项以启用它。

回答

0

尝试转到设置 - >常规 - >重置 - >重置所有设置。帮助了一些人。

0

[CLLocationManager authorizationStatus]是否返回0(kCLAuthorizationStatusNotDetermined)?因为有时候我读了here它返回nil

你应该尝试改变你的比较。