你确定你真的想要一个数组中的字典吗?你给的代码表示更多的名为列阵列,可以使用类似以下内容来实现:
struct Name {
var firstName : String
var lastName : String
}
var persons1 : Array<Name> = [
Name(firstName: "Foo", lastName: "Bar"),
Name(firstName: "John", lastName: "Doe")
]
persons1[0].firstName // "Foo"
var persons2 : Array<(firstName: String, lastName:String)> = [
(firstName: "Mary", lastName: "Mean"),
(firstName: "Foo", lastName: "Bar"),
(firstName: "John", lastName: "Doe")
]
persons2[1].firstName // "Bar"
这些都是正确的阵列和不客气这样使用下标。字典类型通常是键和值的组合,即昵称作为键,名称作为值。
var nickNames : [String:String] = [
"mame" : "Mary Mean",
"foba" : "Foo Bar",
"jodo" : "John Doe"]
nickNames["mame"]! // "Mary Mean"
在这里,我们查找的键值,并获得回报的可选值,这是我强行解开......
所有这些都可以相当容易地追加,但千万注意,命名元组变体persons2
不遵循推荐的做法。还要注意,字典数组允许包含在我最后一次注入中建议的不同键上。
persons1.append(Name(firstName: "Some", lastName: "Guy"))
persons2.append(firstName: "Another", lastName: "Girl")
nickNames["anna"] = "Ann Nabel"
// Array of Dictionaries
var persons : [[String:String]] = [
[ "firstName" : "Firstly", "lastName" : "Lastly"],
[ "firstName" : "Donald", "lastName" : "Duck"]
]
persons.append(["firstName" : "Georg", "middleName" : "Friedrich", "lastName" : "Händel"])
问题:该错误是针对您的问题中未包含的另一行代码,不是吗? – Antonio 2014-11-04 12:27:25