ios - Unwrap a tuple in swift -


this seems valid code me doesn't unwrap tuple

func updateuserdefaults<t>(data:t) {     if let data = data as? (string, any) {         println(data.1)     } }  updateuserdefaults(("loop", true)) 

my goal make generic setter nsuserdefaults. reason why use generic can pass in reactive code followed (next expects function of t->():

loop.producer |> map { ("loop", $0) } |> start(next: updateuserdefaults) 

update:

it seems seems work, unwraps , can provided 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() } 

you using generic function , accessing parameter typed parameter.

surely function should be...

func updateuserdefaults(data: (string, any)) {     println(data.1) }  updateuserdefaults(("loop", true)) 

when using generics doesn't mean automatically know type schema of data pass in.

it means doesn't know schema of data pass in doesn't , shouldn't care.

also, parameter data not optional there isn't need unwrap it.

you can't "unwrap" generic parameter known type. doesn't work way.


Comments

Popular posts from this blog

How to provide Authorization & Authentication using Asp.net, C#? -

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

How to use Authorization & Authentication in Asp.net, C#? -