used type protocol generic extension define array ios swift tuples onedrive

ios - type - Pasar las tuplas como AnyObject en swift



swift define array (2)

De docs rápidos

Tendrás acceso a cualquier cosa dentro de una clase o protocolo que esté marcado con el atributo @objc siempre que sea compatible con Objective-C. Esto excluye las funciones solo de Swift, como las que se enumeran aquí: 7 Genéricos

Tuples Enumerations defined in Swift Structures defined in Swift Top-level functions defined in Swift Global variables defined in Swift Typealiases defined in Swift Swift-style variadics Nested types Curried functions

Por ejemplo, un método que toma un tipo genérico como argumento o devuelve una tupla no será utilizable desde Objective-C.

Por lo tanto, no puede usar la tuple para AnyObject ya que no hay un objective c coincidente para la tupla. En lugar de eso, utilice el Dictionary para pasarlo como parámetro

Usar diccionario en su lugar

var abc:[String:AnyObject] = ["abc":123,"pqr":"not"] puede usar AnyObject for thar

Usa esto para tu diccionario

let userState:[String:AnyObject] = ["name": "temp", "callingDate": NSDate(), "randomValue": 2345]

¿Es posible pasar tuplas como parámetros a funciones que toman a AnyObject como parámetro?

Estoy usando el SDK de OneDrive que le permite pasar un parámetro de estado de usuario que se declara como AnyObject. La función se declara de la siguiente manera:

func getWithPath(path:String, userState: AnyObject)

Me gustaría llamar a este método pasando un Tuple ya que quiero pasar varios valores con diferentes tipos, como por ejemplo:

getWithPath("me/skydrive", (name: "temp", callingDate: Date(), randomValue: 2345))

¿Es posible pasar una tupla como un parámetro donde se espera un AnyObject?


Las tuplas no son objetos, así que esto no funcionará. Sin embargo, si cambia AnyObject a Any , puede pasar objetos y tuplas:

func getWithPath(path:String, userState: Any)