swift - 在字典中存储和访问对象数组 - Swift 3 - macOS

标签 swift xcode macos class dictionary

所以我不是 100% 确定这是否是正确的方法,但我有一个存储一些变量的类,然后我有一个存储这些对象的数组。

我一直在尝试将这些对象放入字典中以便于理解,这样我就不必拥有多个数组,我的想法是我可以使用字典键来识别我想要的数组集。

比如我有

class Player {

init(FirstName: String, LastName:String, Team: String, Pos: String, Line: Int, GaP: Int, Sh: Int, ShotPerc: Float, TOIPerG: Float, ShiPerG: Float, TOIPerShi: Float, FaceOffPer: Float, HitA: Int, HitF: Int, SavePerc: Float){
    lastName = LastName
    firstName = FirstName
    team = Team
    pos = Pos
    line = Line
    GP = GaP
    sh = Sh
    shotPerc = ShotPerc
    TOIPerGame = TOIPerG
    shiftsPerGame = ShiPerG
    TOIPerShift = TOIPerShi
    faceOffPerc = FaceOffPer
    hitA = HitA
    hitF = HitF
    savePerc = SavePerc
}

然后我将它们存储在由团队过滤的单独数组中(仅显示相关代码,但我将 CSV 文件解析为 Player 数组,然后使用过滤器将它们放入适当的数组中)

players.append(Player(FirstName: record["First Name"]!, LastName: record["Last Name"]!, Team: record["Team"]!, Pos: record["Pos"]!, Line: Int(record["Line"]!)!, GaP: Int(record["GP"]!)!, Sh: Int(record["Sh"]!)!, ShotPerc: Float(record["ShotPerc"]!)!, TOIPerG: Float(record["TOIPerGame"]!)!, ShiPerG: Float(record["ShiftsPerG"]!)!, TOIPerShi: Float(record["TOIPerShift"]!)!, FaceOffPer: Float(record["FOffPerc"]!)!, HitA: Int(record["HitA"]!)!, HitF: Int(record["HitF"]!)!, SavePerc: Float(record["SavePerc"]!)!))

    var FLA = [Player]()
    var TBL = [Player]()
    var DET = [Player]()
    var WSH = [Player]()
    var PIT = [Player]()
    var NYR = [Player]()
    var NYI = [Player]()

这看起来很乱,因为我想将它们全部放入字典中,但我只能将一个对象放入其中,大概是因为它正在删除 key 。我的问题是如何让它将所有玩家存储在同一个 key 下?

var dict: [String: Array<Player>] = [:]

for (player, _) in LAK.enumerated(){
            dict = ["LAK":[LAK[player]]]
        }
        print(dict["LAK"]?[0].fullName())

我假设它更符合

dict["LAK"] = 

但我觉得我在兜圈子!

谢谢!

最佳答案

您不能在同一个键下存储多个值。这违背了 Key-Value 存储的全部目的。一个键应映射到一个值。

您可以改为存储玩家数组,但这违背了使用字典的目的。

当您有对象的唯一键(标识符)时,应使用字典来访问它们。在您的情况下,您可以为此使用玩家名称,前提是它们都是唯一的。

关于swift - 在字典中存储和访问对象数组 - Swift 3 - macOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43724318/

相关文章:

swift - 从 Swift 中的数据加载一系列结构

ios - xcode 中来自 pocketcast 的流媒体技术

ios - 使用 Xcode5.1 错误为 iOS 编译 libogg

mysql - 无法在 Mac 上启动 MySQL

javascript - HTML5 Canvas 在不同机器上的不同颜色值

ios - 如何控制拖动按钮来查看 Controller

swift - 如何让 SKAction 在随机时间后重复自身

macos - IKImageView 的 subview 出现在图像下方而不是上方

ios - 在 iOS 上将图像和文本内联居中

ios - 可编程显示具有透明背景的 UIViewController