【问题标题】:Using Swift 3 Measurement and Unit classes in Realm在 Realm 中使用 Swift 3 Measurement 和 Unit 类
【发布时间】:2016-09-14 13:37:50
【问题描述】:

Realm 是否支持 Swift 3 Foundation 中新的 Measurement 和 Unit 类?目前似乎并非如此。如果没有,是否有推荐的解决方法?

【问题讨论】:

    标签: realm swift3


    【解决方案1】:

    为了使 Realm 跨平台保持一致,它不能公开对无法在其他平台上表示的类型的支持。所以不要指望最近在 Foundation 中添加了对 Measurement 和 Unit 类型的原生 Realm 支持。

    但是,为此使用计算属性很容易:

    class MyModel: Object {
        private dynamic var _angleInDegrees: Double = 0
        var angle: Measurement<UnitAngle> {
            get {
                return Measurement(value: _angleInDegrees, unit: UnitAngle.degrees)
            }
            set {
                _angleInDegrees = newValue.value
            }
        }
    
        override class func ignoredProperties() -> [String] {
            return ["angle"]
        }
    }
    

    【讨论】:

    • 感谢您的解释和示例代码。我遇到的问题是使用户能够动态更改用于给定测量的单位类型,我不能对其进行硬编码。我想我可以使用 en enum 或其他一些数据结构作为键,并以与您的示例类似的方式使用动态属性(当然,除非有任何其他建议!)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多