gpt4 book ai didi

ios - 从 'CLLocation?' 向下转换为 'CLLocation' 仅解开可选值;您的意思是使用 '!' 吗?

转载 作者:行者123 更新时间:2023-11-30 12:09:24 25 4
gpt4 key购买 nike

我尝试在 map View 上显示用户当前位置,但在位置管理器功能的第一行出现错误

这是我的代码

import UIKit
import MapKit

class FirstViewController: UIViewController, CLLocationManagerDelegate {

@IBOutlet weak var mapkitView: MKMapView!
var locationManager: CLLocationManager!

override func viewDidLoad()
{
super.viewDidLoad()

if (CLLocationManager.locationServicesEnabled())
{
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
}
}

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
{
let location = locations.last as! CLLocation

let center = CLLocationCoordinate2DMake(latitude: location.coordinate.latitude, longitude: location.coordinate.longitude)

let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta: 0.01))

self.mapkitView.setRegion(region, animated: true)
}
}

我收到的错误是“从‘CLLocation’沮丧?” 'CLLocation' 仅解开选项;您的意思是使用 '!' 吗?

在线让location=locations.last为! CL位置

最佳答案

您正在将 Optional CLLocation 强制转换为 CLLocation,这就是为什么 Swift 建议简单地强制解开它:

let location = locations.last!

如果 locations 为空,此版本(和您的版本)将会崩溃。

因此,我建议不要强行打开任何东西,而是使用 guard:

guard let location = locations.last else {
return
}

关于ios - 从 'CLLocation?' 向下转换为 'CLLocation' 仅解开可选值;您的意思是使用 '!' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46257811/

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