Ios 将元组作为swift中的任意对象传递

Ios 将元组作为swift中的任意对象传递,ios,swift,tuples,onedrive,Ios,Swift,Tuples,Onedrive,是否可以将元组作为参数传递给以AnyObject为参数的函数 我正在使用OneDrive SDK,它允许您传递一个声明为AnyObject的userState参数。函数声明如下: func getWithPath(path:String, userState: AnyObject) 我想调用此方法传入一个元组,因为我想传递多个不同类型的值,如下所示: getWithPath("me/skydrive", (name: "temp", callingDate: Date(), randomVal

是否可以将元组作为参数传递给以AnyObject为参数的函数

我正在使用OneDrive SDK,它允许您传递一个声明为AnyObject的userState参数。函数声明如下:

func getWithPath(path:String, userState: AnyObject)
我想调用此方法传入一个元组,因为我想传递多个不同类型的值,如下所示:

getWithPath("me/skydrive", (name: "temp", callingDate: Date(), randomValue: 2345))
在需要AnyObject的地方,是否可以将元组作为参数传递

来自斯威夫特

您可以访问类或协议中任何 标记为@objc属性,只要它与 目标C。这不包括仅Swift功能,如所列功能 在这里: 7. 仿制药

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
例如,将泛型类型作为参数或参数的方法 返回无法从Objective-C使用的元组

因此,您不能对
任何对象使用
tuple
,因为tuple没有匹配的
objective c
对象。而是使用
Dictionary
作为参数传递

改用字典

var abc:[String:AnyObject]=[“abc”:123,“pqr”:“not”]
您可以将
AnyObject用于thar

用这个做你的字典

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

元组不是对象,所以这不起作用。但是,如果将
AnyObject
更改为
Any
,则可以传递对象和元组:

func getWithPath(path:String, userState: Any)

问题是我没有字典的一致值类型。我有一个字符串,一个布尔值,一个整数,还有更多的值类型。如何克服这个障碍?因为sdk是用
Objective C
编写的,所以您不能使用
元组
。您可以发送
字典
作为参数,并将key like
state
设置为NSString值或NSNumber值。当您开始使用值时,您可以检查
dictionary
值并执行适当的操作。
tuple
dictionary
相同,您可以使用dictionary在顶级使用
tuple
执行所有操作好的,所以我正在尝试这样做。。。让userState=[“name”:“temp”,“callingDate”:Date(),“randomValue”:2345)]但swift不允许我这样做,因为值类型不同,例如String,Date,Int。我如何解决这个问题?使用
NSDate
而不是
Date