【问题标题】:My core locator won't work我的核心定位器不起作用
【发布时间】:2016-05-23 07:13:43
【问题描述】:

在过去的 2 个小时里,我一直在尝试找出核心定位器无法找到我的设备位置的原因。

事实是:
- 它不适用于模拟器或我的 iPhone
- 我可以接受应用程序以访问我在应用程序中的位置,但之后没有任何反应
- 我正在使用 Swift 并使用 Xcode 6.4
- 我已将 NSLocationWhenInUseUsageDescription 和 NSLocationAlwaysUsageDescription 都输入到我的 info.plist

import UIKit
import MapKit
import CoreLocation

class satelliteViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {

    @IBOutlet weak var mapView: MKMapView!
    @IBOutlet weak var mapTypeTitle: UIButton!

    var locationManager: CLLocationManager?

    override func viewDidLoad() {
        super.viewDidLoad()

        locationManager = CLLocationManager()
        locationManager!.delegate = self
        locationManager!.desiredAccuracy = kCLLocationAccuracyBest
        locationManager!.requestWhenInUseAuthorization()
        locationManager!.startUpdatingLocation() 
    }

    @IBAction func changeMapType(sender: AnyObject) {
        // Unimportant     
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}

【问题讨论】:

  • 你实现了didUpdateLocation等委托函数吗?
  • 我之前已经添加了 didUpdateLocation、didFailWithError 和 didChangeAuthorizationStatus 函数,但它似乎没有做任何事情
  • 你能告诉我们这些函数的代码吗?
  • 我搞定了,谢谢你的帮助 :)

标签: ios swift authorization core-location cllocationmanager


【解决方案1】:

嘿,只需通过进入内部 > 设置 > 您的应用 > 位置 > 始终或在使用应用时 ..祝您有美好的一天

,即可启用您应用的定位服务

【讨论】:

  • 不幸的是,不是这样。在我接受应用程序访问我的位置后,它已经将其设置为“使用应用程序时”
  • 无论您是忘记导入 核心位置 之类的框架之一,还是只是尝试从手机中删除应用程序并重新安装,它都会要求您允许位置服务连同您在 plist 文件中提供的密钥消息..
【解决方案2】:

在您的info.plist 中,添加两个属性:NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription like,

然后检查ios版本是否为8.0或更高,

if([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
    {
        [locationManager requestWhenInUseAuthorization];
        [locationManager requestAlwaysAuthorization];
    }

这是在目标c中,快速转换!!

并确保从设置应用中为您的应用开启位置服务。

确保您设置了正确的委托并实现了必要的方法。

希望这会有所帮助:)

【讨论】:

  • 他说他已经将这两个属性添加到他的Info.plist
  • 那么他还需要添加我在回答中提到的代码。我给出了位置更新所需的全部场景。
  • she** 感谢您的帮助,我最终回答了这个问题:)
  • @Demi :不客气.. :) 如果您认为这有帮助,请接受答案,以便其他有类似问题的人可以使用它。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-30
  • 1970-01-01
  • 2014-09-12
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
  • 2017-06-03
相关资源
最近更新 更多