代码之家  ›  专栏  ›  技术社区  ›  Tom E

在核心数据中存储测量值

  •  0
  • Tom E  · 技术社区  · 6 年前

    Im使用核心数据在应用程序中存储身体测量值。这些测量可以是 UnitMass (即重量)或 UnitLength Measurement baseUnit() .

    但是,我不确定如何存储 单元

    enum BodyMeasurementUnit: Int16 {
        case mass = 0
        case length
    
        static func unit(for value: Int16) -> BodyMeasurementUnit {
            switch value {
            case 0: return .mass
            default: return .length
            }
        }
    }
    

    它允许我按索引存储适用的单元。但是Id有一个函数返回 单位质量 直接的。你们谁有更好的主意?另外,尽管使用 enum 这样我就可以很容易地添加额外的单元类型,如果有必要的话,我觉得我在某种程度上复制了Appless Unit* 而不是仅仅根据我的需要增加它们。有人吗?谢谢你的帮助!

    1 回复  |  直到 6 年前
        1
  •  0
  •   Fabian    6 年前

    enum Return {
        case weight(Int)
        case length(Int)
    }
    

    ,这提供了一个更简单的API。

    静态初始值设定项不是必需的,因为rawValue枚举生成自己的初始值设定项 init(rawValue: RawValueType) ( RawValueType=Int here