字典中的不同值(也是元组)

时间:2016-02-23 13:24:10

标签: ios swift dictionary tuples

我想创建一个具有多个键值对和不同值类型的NSDictionary。我的主要问题是如何在NSDictionary中添加一个简单的(2项)-Tuple和NSString?

只需将字符串甚至元组添加到NSDictionary就很简单了。 但要加两者都很复杂。 我试过这个:

var myTuple = (longitude: -122.1234, latitude: 55.1234)
var aPersonDictionary: [String:AnyObject] = ["firstname":"Sally", "age":45, "location":myTuple]

但这不起作用。它给了我错误:Value of type '(longitude: Double, latitude: Double') does not conform to expected dictionary value type 'AnyObject'。 我不明白,因为AnyObject就是一切

非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

实际上AnyObject并不是一切。它代表任何class类型的实例。因此,您希望拥有的东西可以是Any,它可以代表任何类型的实例,包括函数类型。

var myTuple = (longitude: -122.1234, latitude: 55.1234)
var aPersonDictionary: [String : Any] = ["firstname":"Sally", "age":45, "location":myTuple]

答案 1 :(得分:0)

您应该使用Any而不是AnyObject,因为AnyObject用于类类型的实例(元组不是),它应该是:

myTuple = (longitude: -122.1234, latitude: 55.1234)
var aPersonDictionary: [String:Any] = ["firstname":"Sally", "age":45, "location":myTuple]

进一步解释:

  
      
  • AnyObject可以表示任何类类型的实例。

  •   
  • 除功能类型外,任何类型都可以代表任何类型的实例。

  •