MKCoordinateSpan中的错误,表示在自我可用之前运行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MKCoordinateSpan中的错误,表示在自我可用之前运行相关的知识,希望对你有一定的参考价值。

我正在将我的应用程序与地图集成,当我使用MKCoordinateSpan类型声明变量span时,它会给我这个错误:

不能在属性初始值设定项中使用实例成员'latDelta';属性初始化程序在'self'可用之前运行

此外,当我写其他类型,如:CLLocationCoordinate2DMKCoordinateRegion时,它仍然告诉我,属性初始值设定项中的变量不能使用。

我不知道问题是什么,任何帮助将不胜感激!

这是我的代码:

import UIKit
import MapKit
class ViewController: UIViewController, MKMapViewDelegate {

    @IBOutlet var map: MKMapView!

    let latitude: CLLocationDegrees = 42.8
    let longitude: CLLocationDegrees = 74.6
    let latDelta: CLLocationDegrees = 0.05
    let lonDelta: CLLocationDegrees = 0.05

    let span: MKCoordinateSpan = MKCoordinateSpan(latitudeDelta: latDelta, longitudeDelta: lonDelta)
答案

这不是初始化值的正确方法。但你可以在任何其他类方法中做到这一点。检查以下代码:

class ViewController: UIViewController, MKMapViewDelegate {

    @IBOutlet var map: MKMapView!

    let latitude: CLLocationDegrees = 42.8
    let longitude: CLLocationDegrees = 74.6
    let latDelta: CLLocationDegrees = 0.05
    let lonDelta: CLLocationDegrees = 0.05

    //Declare it here
    var span: MKCoordinateSpan?

    override func viewDidLoad() {
        super.viewDidLoad()

        //Assign values here in method
        span = MKCoordinateSpan(latitudeDelta: latDelta, longitudeDelta: lonDelta)
    }

}
另一答案

您需要在viewDidLoad()中初始化以下内容

let span: MKCoordinateSpan?; 

viewDidLoad()

span  = MKCoordinateSpan(latitudeDelta: latDelta, longitudeDelta: lonDelta);

以上是关于MKCoordinateSpan中的错误,表示在自我可用之前运行的主要内容,如果未能解决你的问题,请参考以下文章

为啥 MKCoordinateSpan 发生变化?

MKCoordinatespan latitudedelta 和 longitudedelta 计算基于源和目的地的中心坐标

string::npos 速成 及其在自定义split函数中的应用

在自定义单元格(xib)中滚动时,UITextField 中的文本消失

使用 WIX 安装程序在自定义操作中停止设置错误

在自定义对话框中设置文本视图