我正在为使用结构的类属性编写 getter/setter。这最终从 JSON 解析并转换回 JSON,以便将数据存储在云中。
// struct:
public struct CompletedTask {
var uuid: String!
var amount: Float?
}
// array of completed tasks on the class:
public var completedTasks: [CompletedTask] {
get {
var getValue: [CompletedTask] = []
if let _completedTasks = self["completedTasks"] as? [Dictionary<String, AnyObject>] {
_completedTasks.forEach({
getValue.append(CompletedTask(uuid: $0["uuid"], amount: nil))
})
}
return getValue
}
set(value) {
var setValue: [Dictionary<String, AnyObject>]
value.forEach({
if let amount = $0.amount where $0.amount != nil {
setValue.append(["uuid": $0.uuid, "amount": amount])
} else {
setValue.append(["uuid": $0.uuid])
}
})
self["completedTasks"] = setValue
}
}
设置器(我认为,虽然我无法测试)工作正常(无论如何它可以编译)。但是吸气剂正在抛出:
Cannot subscript a value of type '[String : AnyObject]' with an index of type 'String'
这是怎么回事?我认为这是一个简单的解决方法,但我尝试了几种不同的选项,但它不起作用。