小编mon*_*roo的帖子

如何在可编码结构中使用计算属性(swift)

我创建了一个"可编码"结构来序列化数据集并将其编码为Json.除了计算属性没有显示在json字符串中之外,一切都工作得很好.如何在编码阶段包含计算属性.

例如:

struct SolidObject:Codable{

    var height:Double                      = 0
    var width:Double                       = 0
    var length:Double                      = 0

    var volume:Double {
        get{
            return height * width * length
        }
    }
}

var solidObject = SolidObject()
solidObject.height = 10.2
solidObject.width = 7.3
solidObject.length = 5.0

let jsonEncoder = JSONEncoder()
do {
    let jsonData = try jsonEncoder.encode(solidObject)
    let jsonString = String(data: jsonData, encoding: .utf8)!
    print(jsonString)
} catch {
    print(error)
}
Run Code Online (Sandbox Code Playgroud)

打印出"{"宽度":7.2999999999999998,"长度":5,"高度":10.199999999999999}"

我也很好奇有7.29999 ..而不是7.3但我的主要问题是"我怎么能包括"音量"这个json字符串呢?"?

json ios swift computed-properties codable

12
推荐指数
1
解决办法
2690
查看次数

标签 统计

codable ×1

computed-properties ×1

ios ×1

json ×1

swift ×1