【问题标题】:Can we mix types in an array in swift?我们可以快速混合数组中的类型吗?
【发布时间】:2017-03-28 08:14:46
【问题描述】:

在 Swift 3 Playground 中,我想创建一个可变数组,其中一些索引为数字,其他索引为字符串。执行此操作时出现错误:

var playerInfo = [[String]]()
playerInfo[0][2] = "Adam" //Error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)
playerInfo[0][3] = "Martinez"
playerInfo[0][1] = "00"

编辑: 像这样?

var playerInfo: [[String:Any]] = [
     [
     "playerNumber" : "00",
     "playerFirstName" : "Adam",
     "playerLastName" : "Martinez"
     ]
]

【问题讨论】:

  • 您可以为此创建字典数组。
  • 您不能添加带有索引下标的项目,因为所有数组都是空的(没有索引 0)。
  • @NandiinBao 崩溃的原因与您的链接答案无关。
  • 至于崩溃,@vadian 是对的。 var playerInfo = [[String]]() 只创建一个空数组的空数组。 playerInfo[0] 会导致崩溃,因为 playerInfo 中没有第 0 个元素,因为它是空的。即使您将变量构造为var playerInfo = [[String]](repeating: [], count: 100),调用playerInfo[0][2] 也会导致崩溃。 playerInfo[0] 这次确实存在,但它是一个空数组,里面没有第二个元素。

标签: arrays swift dictionary


【解决方案1】:

您没有正确使用语法。

试试这个:

var playerInfo = [[String]]()
playerInfo.append(["00","Adam","Martinez"])

编辑

为了您的编辑,您需要一个字典:

var playerInfo = Dictionary<String, Any>()

playerInfo["playerNumber"] = "00"
playerInfo["playerFirstName"] = "Adam"
playerInfo["playerLastName"] = "Martinez"

【讨论】:

  • 当我实现您的数组方法时,我的项目中出现错误:预期声明。
  • 具体在哪里?我的意思是,在哪一行?
猜你喜欢
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多