我试图把我的头围绕在初始化空数组在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 [] = []工作?
你需要给字典的类型:
原文链接:https://www.f2er.com/swift/321318.htmlvar myNewDictArray: [Dictionary<String,Int>] = []
要么
var myNewDictArray = [Dictionary<String,Int>]()
编辑:您也可以使用较短的语法:
var myNewDictArray: [[String:Int]] = []
要么
var myNewDictArray = [[String:Int]]()