2014-09-23 113 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

你應該嘗試改變你的比較。