在Swift中初始化空数组的字典

前端之家收集整理的这篇文章主要介绍了在Swift中初始化空数组的字典前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图把我的头围绕在初始化空数组在Swift。

对于字符串数组,它非常直接:

var myStringArray: String[] = []
myStringArray += "a"
myStringArray += "b"

-> ["a","b"]

和整数

var myIntArray: Int[] = []
myIntArray += 1
myIntArray += 2

-> [1,2]

它也适用于其他类型的对象,如NSImage对象:

let path = "/Library/Application Support/Apple/iChat Icons/Flags/"
let image1 = NSImage(byReferencingFile: path + "Brazil.png")
let image2 = NSImage(byReferencingFile: path + "Chile.png")

var myImageArray: NSImage[] = []
myImageArray += image1
myImageArray += image2

-> [<NSImage 0x7fe371c199f0 ...>,<NSImage 0x7fe371f39ea0 ...>]

然而,我不能找出语法来初始化空数组的字典。

我知道你可以有一个数组的字典,因为初始化与初始值工程:

let myDict1 = ["someKey":"someValue"]
let myDict2 = ["anotherKey":"anotherValue"]

var myDictArray = [myDict1]
myDictArray += myDict2

-> [["someKey": "someValue"],["anotherKey": "anotherValue"]]

编辑:在下面的代码中有一个错误(混合myNewDictArray和myDictArray),当纠正它不工作,我说它做了。

如下:

let myDict1 = ["someKey":"someValue"]
let myDict2 = ["anotherKey":"anotherValue"]

var myNewDictArray: AnyObject = []
myDictArray += myDict1
myDictArray += myDict2

-> [["someKey": "someValue"],["anotherKey": "anotherValue"]]

然而(你会希望语法是)失败:

var myNewDictArray: Dictionary[] = []

错误无法转换表达式的类型“字典[]’类型’Hashable’

所以问题是什么是初始化一个空数组的字典项目的正确方法,为什么不这个语法var myNewDictArray:Dictionary [] = []工作?

你需要给字典的类型:
var myNewDictArray: [Dictionary<String,Int>] = []

要么

var myNewDictArray = [Dictionary<String,Int>]()

编辑:您也可以使用较短的语法:

var myNewDictArray: [[String:Int]] = []

要么

var myNewDictArray = [[String:Int]]()
原文链接:https://www.f2er.com/swift/321318.html

猜你在找的Swift相关文章