gpt4 book ai didi

ios - 未在 Swift 代码中调用 CLLocationManagerDelegate 方法

转载 作者:搜寻专家 更新时间:2023-10-31 08:05:27 24 4
gpt4 key购买 nike

我正在尝试创建一个简单的应用程序来找出某人所在的区域,但我被卡住了,因为当应用程序运行和查找位置时,没有调用任何 CLLocationManagerDelegate 方法。

如果相关,我也没有看到要求我授予应用程序使用位置权限的对话框。

这是我目前所拥有的 -

import UIKit
import CoreLocation

class ViewController: UIViewController, CLLocationManagerDelegate {

@IBOutlet weak var locationLabel : UILabel!

var locationManager = CLLocationManager()
let geocoder = CLGeocoder ()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()
}

override func viewDidDisappear(animated: Bool) {
locationManager.stopUpdatingLocation()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
geocoder.reverseGeocodeLocation(locations.last as CLLocation, completionHandler: {(placemark, error) in
if (error != nil) {
println("Error")
} else {
let pm = placemark.first as CLPlacemark

println(pm)
}
})
}

func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
println("Epic Fail")
}
}

我已经放置了断点,所以我知道代码永远不会被调用。我已经进入并在应用程序运行时手动打开了该应用程序的定位服务。

最佳答案

试着打电话

func locationManager(manager: CLLocationManager!, didUpdateToLocation newLocation: CLLocation!, fromLocation oldLocation: CLLocation!)

而不是您现在进行的委托(delegate)调用...我遇到了以下问题:

func locationManager(manager: CLLocationManager!, didUpdateLocations locations:  [AnyObject]!)

还有。但是使用上面的委托(delegate)调用解决了我的问题。

编辑(没有正确阅读问题...)

您从不请求许可,这就是您不会收到弹出窗口的原因。调用以下内容:locationManager.requestWhenInUseAuthorization()

这是非常重要的一步,如果您没有请求用户对您的应用进行授权,您的应用将无法运行

添加 NSLocationWhenInUseUsageDescription 也很重要如果运行 iOS8,到你的 .plist 文件。

截图:

enter image description here

关于ios - 未在 Swift 代码中调用 CLLocationManagerDelegate 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26434250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com