命名元组 - 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
不是 nil
且 ltuple
不是 nil
.[=18 时,l
将绑定到一个元组=]
这是我的错误:
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
不是 nil
且 ltuple
不是 nil
.[=18 时,l
将绑定到一个元组=]