首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用领域Swift保存值类型为Measurement<UnitType>的变量?

如何使用领域Swift保存值类型为Measurement<UnitType>的变量?
EN

Stack Overflow用户
提问于 2018-11-21 05:42:18
回答 1查看 120关注 0票数 1

Realm Swift是否支持以值类型Measurement保存和检索数据?下面是我试图保存的数据的类结构:

代码语言:javascript
复制
class Race: Object {
@objc dynamic var raceDistance: Measurement<UnitLength>?
@objc dynamic var nettTime = Measurement<UnitDuration>?
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-21 06:54:41

领域不支持Measurement本身,但它们符合Codable,因此可以保存它们的编码版本:

代码语言:javascript
复制
@objc dynamic var encodedRaceDistance: Data?
// Realm 10.10+
// @Persisted var encodedRaceDistance: Data?

您可以添加这样的计算属性来从数据中获取Measurement<UnitLength>

代码语言:javascript
复制
var raceDistanceMeasurement: Measurement<UnitLength>? {
    get {
        if let encoded = encodedRaceDistance {
            return try? JSONDecoder().decode(Measurement<UnitLength>.self, from: encoded)
        }
        return nil
    }
    
    set {
        if let newValue = newValue {
            encodedRaceDistance = try? JSONEncoder().encode(newValue)
        } else {
            encodedRaceDistance = nil
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53405878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档