[NSObject:任何对象]!和 joinWithSeparator

[NSObject : AnyObject]! and joinWithSeparator

如何从以下函数的结果(字典)中获取字符串值(joinWithSeparator)?

func gameRequestDialog(gameRequestDialog: FBSDKGameRequestDialog!, didCompleteWithResults results: [NSObject : AnyObject]!){
        NSLog("resoult.count: %i", results.count)
        let res = results["to"] // This is a Key Value par
        let res = results["to"] as Dictionary // Error: has no subscript members
        let res = results?["to"] as Dictionary // Error: Value of optional type 'AnyObject' not unwrapped.


...

结果包含:

([NSObject : AnyObject]!) results = 5 key/value pairs {
  [0] = {
    key = 0x000
    value = 0x000
  }
  [1] = {
    key = 0x000
    value = 0x000
  }
  [2] = {
    key = 0x000
    value = 0x000
  }
  [3] = {
    key = 0x000
    value = 0x000
  }
  [4] = {
    key = 0x000
    value = 0x000
  }
}

我一直在寻找类似 res.joinWithSeparator(",") 的东西来获取带有值的字符串。

提前致谢

我会对 Dictionary 进行扩展以获取包含所有值的字符串。

像这样:

extension Dictionary {
    var joinedValues:String {
        return self.values.map { String([=10=]) }.joinWithSeparator(", ")
    }
}

用法示例:

let dict = ["name":"Mike", "age":42, "gender":"male"]

let valuesAsString = dict.joinedValues  // "male, 42, Mike"

当然,只有当您的值可以使用 String() 转换为字符串时,它才会起作用。如果没有,您将不得不根据您的值的类型进行特定的扩展。