如何在swift 4中存储大字典

时间:2018-05-17 16:25:18

标签: swift dictionary

我有一个关键字词典:我用于集合视图的值对,每个button.tag触发一个加载一个数字集合的密钥,一切都可以正常工作,直到大约106号瓷砖。之后我得到一个"命令因信号失败:非法指令:4"错误,我不能做出头或尾。

也许这与瓷砖的存储方式有关?目前我将它存储在一个看起来像这样的快速文件中:

import Foundation

    let tiles = [0:[0,11,52,35,54,55,64,70,80,67,54,60,73,162,171,160],
    1:[0,11,52,35,54,55,64,70,80,67,54,60,73,162,171,160],
    2:[0,11,52,35,54,55,64,70,80,67,54,60,73,162,171,160],
    3:[0,11,52,35,54,55,64,70,80,67,54,60,73,162,171,160],
    4:[0,11,52,35,54,55,64,70,80,67,54,60,73,162,171,160],
    5:[0,11,52,35,54,55,64,70,80,67,54,60,73,162,171,160],
...

一直到175.它正常工作到大约106,之后我得到了错误。这是一个快速的编译器错误 - 我很确定我正在存储我的密钥:价值对也是如此,所以任何建议都是受欢迎的!谢谢你的时间

2 个答案:

答案 0 :(得分:1)

而不是单个大字典文字,将字典的构造分解为多个语句。

var tiles = [0:[0,11,52,35,54,55,64,70,80,67,54,60,73,162,171,160]]
tiles[1] = [0,11,52,35,54,55,64,70,80,67,54,60,73,162,171,160]
// and so on

答案 1 :(得分:1)

如果数组相同,您可以尝试

var tiles = [Int:[Int]]()

(0...175).forEach {

    tiles[$0] = [0,11,52,35,54,55,64,70,80,67,54,60,73,162,171,160]

}

print(tiles)