命名元组 - Swift - 如何使用

时间:2015-02-22 14:45:13

标签: swift tuples

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

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

这是模块B中的CoreLocationController类:

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

这是模块C中theCoreLocationController的声明:

var theCoreLocationController: CoreLocationController?

2 个答案:

答案 0 :(得分:1)

您的ltuple是可选的。要达到你想要的效果,你应该打开它。 E.g。

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

答案 1 :(得分:0)

您需要对选项进行谨慎处理。您的ltuple会返回一个可选项,theCoreLocationController也是可选项。

使用:

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

nil才会绑定到元组。