这对我来说似乎是有效的代码,但它不会解开元组
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()
}