首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MKCoordinateSpan中的错误,要求在self可用之前运行

MKCoordinateSpan中的错误,要求在self可用之前运行
EN

Stack Overflow用户
提问于 2017-12-26 08:34:14
回答 2查看 217关注 0票数 1

我将我的应用程序与地图集成在一起,当我用MKCoordinateSpan类型声明变量span时,它会给出以下错误:

不能在属性初始化器中使用实例成员“latDelta”;属性初始化器在可用“self”之前运行

此外,当我编写其他类型(如:CLLocationCoordinate2DMKCoordinateRegion )时,它仍然说不能使用属性初始化器中的变量。

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

这是我的密码:

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-26 08:40:51

这不是初始化值的正确方式。但在任何其他类方法中都可以这样做。请检查以下代码:

代码语言:javascript
复制
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)
    }

}
票数 -1
EN

Stack Overflow用户

发布于 2017-12-26 08:39:50

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

代码语言:javascript
复制
let span: MKCoordinateSpan?; 

viewDidLoad()

代码语言:javascript
复制
span  = MKCoordinateSpan(latitudeDelta: latDelta, longitudeDelta: lonDelta);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47975922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档