类型的值没有成员 - 在第一个和目标控制器中定义

问题描述:

我有两个浮点数要发送到我的目标控制器在prepareForSegue函数。我有我的变量设置在这两个变量,但我遇到了上述错误。类型的值没有成员 - 在第一个和目标控制器中定义

if segue.identifier == "secondmapsegue" 
    { 
     let destination = segue.destination as! MapsView 
     let indexPath = tableView.indexPathForSelectedRow 

     var lat: Float 
     var long: Float 

     if index.row == 0 { 
      lat = MSULandMarks[(indexPath?.row)!].f1 
      long = MSULandMarks[(indexPath?.row)!].f2 
     } 
     else if index.row == 1 { 
      lat = MSUFrats[(indexPath?.row)!].f1 
      long = MSUFrats[(indexPath?.row)!].f2 
     } 
     else 
     { 
      lat = MSUSoro[(indexPath?.row)!].f1 
      long = MSUSoro[(indexPath?.row)!].f2 
    } 
      destination.latitude = lat 
      destination.longitude = long 
     } 

override func viewDidLoad() { 
    super.viewDidLoad() 
    var latitude: Float 
    var longitude: Float 

更新1: 在下方选择的解决方案是解决方案!在我结束轻微的困惑是,像这样在我的目标控制器添加初值为纬度和经度的Xcode的建议,

var latitude: Float = 0.0 
var longitude: Float = 0.0 

不要担心,简单地接受了建议,并继续与您的项目。假设你的拉特。和长。有值,0.0值将被您的真实值取代。

+0

只为信息:你可以如果您不想给变量初始值,请使用可选 – 3stud1ant3

+0

也是一个有效的建议,谢谢,梭哈。 – jonpeter

我认为下面的代码片段是从目标控制器MapsView

override func viewDidLoad() { 
    super.viewDidLoad() 
    var latitude: Float 
    var longitude: Float 
} 

您需要声明变量的viewDidLoad功能外,像这样:

var latitude: Float 
var longitude: Float 

override func viewDidLoad() { 
    super.viewDidLoad() 

} 
+0

这是解决方案,谢谢!当我最初尝试时,我会添加一个关于轻微混淆的注释。 – jonpeter

+0

太棒了!乐意效劳。 –