【发布时间】:2015-06-09 14:42:28
【问题描述】:
如果我创建一个结构数组,一切都会按预期工作,但是如果我创建一个结构字典,它们的属性将不再可访问,是否有额外的步骤来访问它们?请看下面的简单示例:
struct SceneStruct {
var number: Int
init(number: Int) {
self.number = number
}
}
let aStruct = SceneStruct(number: 0) //shows in assistant editor as: {number 0}
let bStruct = SceneStruct(number: 26) //shows in assistant editor as: {number 26}
//EXPECTED BEHAVIOR:
let arr = [aStruct,bStruct] //shows in assistant editor as: [{number 0}, {number 26}]
var i = arr[0] //shows in assistant editor as: {number 0}
var j = i.number //shows in assistant editor as: 0
//BROKEN BEHAVIOR:
let dict = ["one": aStruct, "two": bStruct] //shows in assistant editor as: ["one": {number 0}, "two": {number 26}]
var x = dict["one"] //shows in assistant editor as: {{number 0}}
var y = x.number // Fails: "error: 'SceneStruct?' does not have a member named 'number'"
似乎对象以某种方式包装在字典中,但对于我来说,我找不到任何关于这种行为的信息。
【问题讨论】:
标签: swift dictionary struct properties