【问题标题】:Can't figure out how to append to an array (within a struct) (Swift)无法弄清楚如何附加到数组(在结构内)(Swift)
【发布时间】:2015-07-02 04:20:06
【问题描述】:

我完全被困住了。我正在用 Swift 构建一个 iOS 应用程序。我需要在一个结构中定义一组工具,但如果我包含超过 4 个项目,Xcode 会卡住索引。

在此处找到该特定问题的解决方案:https://stackoverflow.com/a/27531394。但是,我不知道如何附加到数组中。当我尝试执行以下代码时,出现以下错误:“预期声明”。有什么想法吗?

import Foundation

struct Toolkit {
    var tools = [ [
        "name": "Know Yourself to Lead Yourself",
        "shape": "icon_knowyourself.pdf",
        "image": "know_yourself_to_lead_yourself.pdf",
        "backgroundColor": ["red": 215, "green": 34, "blue": 14, "alpha": 1.0]
        ],
        [
        "name": "The Core",
        "shape": "icon_thecore.pdf",
        "image": "the_core.pdf",
        "backgroundColor": ["red": 185, "green": 34, "blue": 14, "alpha": 1.0]
        ],
        [
        "name": "5 Circles of Influence",
        "shape": "icon_5circles.pdf",
        "image": "5_circles_of_influence.pdf",
        "backgroundColor": ["red": 185, "green": 34, "blue": 14, "alpha": 1.0]
        ],
        [
        "name": "Support Challenge Matrix",
        "shape": "icon_supportchallenge.pdf",
        "image": "support_challenge_matrix.pdf",
        "backgroundColor": ["red": 205, "green": 34, "blue": 14, "alpha": 1.0]
        ]
    ]
    tools.append([
        "name": "Creating Healthy Culture",
        "shape": "icon_healthyculture.pdf",
        "image": "creating_healthy_culture.pdf",
        "backgroundColor": ["red": 185, "green": 34, "blue": 14, "alpha": 1.0]
    ])

}

【问题讨论】:

  • 你不能在任何函数或方法之外调用tools.append() ...
  • 显式类型注释有时也可以帮助解决“无限索引”问题,在您的情况下为var tools : [NSDictionary] = ...

标签: ios arrays swift struct


【解决方案1】:

在为结构或类定义接口时,可以执行的操作类型是有限的。您可以对值进行一些基本的初始化,但不允许调用 append() 之类的方法。这是对您的代码的快速调整,我将追加移到 init() 方法中:

struct Toolkit {
    var tools = [ [
        "name": "Know Yourself to Lead Yourself",
        "shape": "icon_knowyourself.pdf",
        "image": "know_yourself_to_lead_yourself.pdf",
        "backgroundColor": ["red": 215, "green": 34, "blue": 14, "alpha": 1.0]
        ],
        [
            "name": "The Core",
            "shape": "icon_thecore.pdf",
            "image": "the_core.pdf",
            "backgroundColor": ["red": 185, "green": 34, "blue": 14, "alpha": 1.0]
        ],
        [
            "name": "5 Circles of Influence",
            "shape": "icon_5circles.pdf",
            "image": "5_circles_of_influence.pdf",
            "backgroundColor": ["red": 185, "green": 34, "blue": 14, "alpha": 1.0]
        ],
        [
            "name": "Support Challenge Matrix",
            "shape": "icon_supportchallenge.pdf",
            "image": "support_challenge_matrix.pdf",
            "backgroundColor": ["red": 205, "green": 34, "blue": 14, "alpha": 1.0]
        ]
    ]

    init() {
        tools.append([
            "name": "Creating Healthy Culture",
            "shape": "icon_healthyculture.pdf",
            "image": "creating_healthy_culture.pdf",
            "backgroundColor": ["red": 185, "green": 34, "blue": 14, "alpha": 1.0]
        ])
    }
}

let kit = Toolkit()
println(kit.tools)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 2014-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    相关资源
    最近更新 更多