gpt4 book ai didi

swift - 如何制作一个快速字典来保存两个项目,这些项目是其他项目的数组

转载 作者:行者123 更新时间:2023-11-30 10:14:00 32 4
gpt4 key购买 nike

我想创建一个包含两个数组的字典(一个键称为“位置”,另一个称为“项目”),如下所示:

 var tmpResults = Dictionary("locations",Array)
tmpResults["items"]=Array

或类似的东西(似乎都不起作用):

  var tmpResults = ["locations",:<Location>,"items":<Item>]
var tmpResults = ["locations":Array(Location),"items":Array(Item)]

但我真的不知道如何在 Swift 中做到这一点。我如何指定数组可以保存的类型?

最佳答案

我认为最简单的解决方案是AnyObject

var tmpResults: [String: AnyObject] = [:]
tmpResults["locations"] = [location1, location2, location3]
tmpResults["items"] = [item1, item2, item3]

// Assuming location1, location2, and location3 are all of the same "Location" type
// And item1, item2, and item3 are all of the same "Item" type

通过使用AnyObject,您的字典对象几乎可以是任何东西。在此示例中,您有一个字典,其中一个键保存 Locations 数组,另一个键保存一组 Items

不过,你确实失去了 Swift 所做的一些很好的类型检查。

编辑

事实上,你可以这样声明它,这样编译器至少知道你的字典包含数组:

var tmpResults: [String: [AnyObject]] = [:]

无论哪种情况,您使用的数组都可能会执行如下操作:

if let items = tmpResults["items"] as? [Item] {
// Do something with you items here
}

关于swift - 如何制作一个快速字典来保存两个项目,这些项目是其他项目的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31283324/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com