ios - AnyObject vs. Struct (Any) -


i create method projects:

func print(obj: anyobject) {     if let rect = obj as? cgrect {         println(nsstringfromcgrect(rect))     }     else if let size = obj as? cgsize {         println(nsstringfromcgsize(size))     }      //... } 

but can't because cgrect , cgsize structs , not conform anyobject protocol. so, ideas on how done?

@nkukushkin's answer correct, however, if want function behaves differently depending on whether it’s passed cgrect or cgstruct, better off overloading:

func print(rect: cgrect) {     println(nsstringfromcgrect(rect)) }  func print(size: cgsize) {     println(nsstringfromcgsize(size)) } 

in comparison, any both inefficient (converting structs any , back, have big impact if lot in tight loop), , non-typesafe (you can pass function, , fail @ runtime).

if intention coerce both types common type , same operation on it, can create 3rd overload takes type, , have other 2 call it.


Comments

Popular posts from this blog

Payment information shows nothing in one page checkout page magento -

tcpdump - How to check if server received packet (acknowledged) -