命名元组 - Swift - 如何使用

Named tuples - Swift - How to use

这是我的错误: 这是我在模块 A 中的功能:

func current_street(){
   var l = theCoreLocationController?.ltuple //lat,long
   let g = GeocodeObject(lat: l.lat, long: l.long, userstate: USER_STATE)
}

这是模块 B 中的 CoreLocationController class:

public class CoreLocationController : NSObject, CLLocationManagerDelegate {
    public var ltuple: (lat:Double, long:Double)?;
    ...

这是模块 C 中 theCoreLocationController 的声明:

var theCoreLocationController: CoreLocationController?

您的 ltuple 是可选的。为了实现你想要的,你应该打开它。例如

func current_street(){
   if let l = theCoreLocationController?.ltuple //lat,long {
     let g = GeocodeObject(lat: l.lat, long: l.long, userstate: USER_STATE)
     // ...
   }
}

您需要谨慎对待可选项。您的 ltuple returns 是可选的,您的 theCoreLocationController 也是可选的。

使用:

func current_street(){
   let l = theCoreLocationController?.ltuple {
     let g = GeocodeObject(lat: l.lat, long: l.long, userstate: USER_STATE)
     // ...
   }
}
当且仅当 theCoreLocationController 不是 nilltuple 不是 nil.[=18 时,

l 将绑定到一个元组=]