这是我的错误: 这是我在模块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?
答案 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
不是theCoreLocationController
且nil
不是ltuple
时, nil
才会绑定到元组。