将CLLocationCoordinate2D分配给空白而不是NIL

时间:2018-01-09 07:28:17

标签: ios swift initialization cllocationcoordinate2d

我正在尝试分配默认值而不是获取Nul。但是我收到了一个错误:

  

必须调用超类的指定初始化程序' UIViewController'

如何消除错误?

代码:

var destination : CLLocationCoordinate2D
init(){
 super.init()
    self.destination.latitude = Double("")!
    self.destination.longitude = Double("")!
}
required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

1 个答案:

答案 0 :(得分:0)

该错误表明此类是UIViewControllerUIViewController的指定初始值设定项需要nibName& bundle。因此,当您在没有参数的情况下调用super.init时,它会抛出一个错误,因为init的{​​{1}}方法(在这种情况下是超类)需要这些参数。

基本上,您必须将UIViewController替换为

super.init()

更好的方法:

覆盖super.init(nibName: String?, bundle: Bundle?) 方法

init

正确的方法:

根本不使用var destination : CLLocationCoordinate2D override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) self.destination.latitude = Double("")! self.destination.longitude = Double("")! } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } 。相反,使用init的生命周期方法,例如UIViewControllerviewDidLoad和& viewWillAppear