Ios 将元组作为swift中的任意对象传递
是否可以将元组作为参数传递给以AnyObject为参数的函数 我正在使用OneDrive SDK,它允许您传递一个声明为AnyObject的userState参数。函数声明如下: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
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 likestate
设置为NSString值或NSNumber值。当您开始使用值时,您可以检查dictionary
值并执行适当的操作。tuple
与dictionary
相同,您可以使用dictionary在顶级使用tuple
执行所有操作好的,所以我正在尝试这样做。。。让userState=[“name”:“temp”,“callingDate”:Date(),“randomValue”:2345)]但swift不允许我这样做,因为值类型不同,例如String,Date,Int。我如何解决这个问题?使用NSDate
而不是Date