簡體   English   中英

核心位置不在iOS模擬器上運行

[英]Core Location don't run on ios simulator

我的應用是由Xcode 5為ios7創建的,當我按下“獲取位置”按鈕時,出現了消息“ MyApp想要使用您的當前位置”,現在我更新了Xcode,並且在ios8核心位置上沒有運行,缺少一些鍵加上? 還是上課? 在ios7中沒有實現的必要嗎?

iOS 8 CoreLocation API已更改。

因此,您需要做的第一件事是將以下兩個鍵中的一個或兩個添加到Info.plist文件中:

NSLocationWhenInUseUsageDescription

NSLocationAlwaysUsageDescription

這兩個鍵都帶有一個字符串,該字符串描述了為什么需要定位服務。 您可以輸入一個字符串,例如“需要位置才能找到您所在的位置”,就像在iOS 7中一樣,可以在InfoPlist.strings文件中進行本地化。

接下來,您需要為相應的定位方法whenInUse或Background請求授權。 使用以下調用之一:

[self.locationManager requestWhenInUseAuthorization]
[self.locationManager requestAlwaysAuthorization]

下面的代碼對ios7和ios8都適用。

if (_locationmanager == nil) {
    _locationmanager = [[CLLocationManager alloc] init];
}
_locationmanager.delegate = self;
_locationmanager.distanceFilter = kCLDistanceFilterNone;
if ([CLLocationManager  locationServicesEnabled]) {  // Check for iOS 8. Without this guard the code will crash with "unknown selector" on iOS 7.

if ([_locationmanager respondsToSelector:@selector(requestWhenInUseAuthorization)])           {
    [_locationmanager requestWhenInUseAuthorization];
}
[_locationmanager startUpdatingLocation];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM