【发布时间】:2015-07-07 12:38:39
【问题描述】:
这对我来说似乎是有效的代码,但它不会解开元组
func updateUserDefaults<T>(data:T) {
if let data = data as? (String, Any) {
println(data.1)
}
}
updateUserDefaults(("loop", true))
我的目标是使它成为 NSUserDefaults 的通用设置器。 我使用泛型的原因是我可以很容易地在我的反应代码中传递它 如下(接下来需要T->()的函数:
loop.producer |> map { ("loop", $0) } |> start(next: updateUserDefaults)
更新:
这似乎可行,它解开并可以作为 T->() 提供
func updateUserDefaults<T>(data:(String, T)) {
if let value = data.1 as? Bool {
userDefaults.setBool(value, forKey: data.0)
} else if let value: AnyObject = data.1 as? AnyObject {
userDefaults.setObject(value, forKey: data.0)
}
userDefaults.synchronize()
}
【问题讨论】:
标签: ios swift generics tuples unwrap