OMHModels 是一个 Swift 库,用于使用 Open mHealth 和 IEEE 1752 模式在 iOS 项目中表示移动健康数据。
可以使用 Swift Package Manager 将此项目添加到您的 Xcode 项目或 Swift Package 中。
Xcode: 对于 Xcode 项目,请按照 将包依赖项添加到您的应用程序 中的说明进行操作。
Swift Package: 您可以按照 Swift Package Manager 关于定义依赖项的文档 将此项目添加为 Swift Package 的依赖项。
此软件包目前支持以下模式
OMHModels
包可用于根据上述模式在您的 iOS 应用程序中表示移动健康数据。
下面是使用 TotalSleepTime
的示例,但相同的说明适用于包中的任何模式。
要创建 TotalSleepTime
结构的实例
let sleepTime = TotalSleepTime(
totalSleepTime: DurationUnitValue(value: 8, unit: .hour),
effectiveTimeFrame: TimeFrame(timeInterval:
TimeInterval(
startDateTime: // Date,
endDateTime: // Date
),
isMainSleep: true,
descriptiveStatistic: .average,
descriptiveStatisticDenominator: .week
)
要将 TotalSleepTime
实例编码为 JSON
let json: String
do {
let encoder = JSONEncoder()
encoder.outputFormatting = [.prettyPrinted, .withoutEscapingSlashes, .sortedKeys]
// Note that both IEEE 1752 and Open mHealth use snake case for its properties when represneted in JSON
encoder.keyCodingStrategy = .convertToSnakeCase
let data = try encoder.encode(sleepTime)
json = String(data: jsonData, encoding: .utf8)
} catch {
print("Error encoding to JSON: \(error)")
}
要将 JSON 字符串解码回 TotalSleepTime
实例
let jsonString = /* your JSON string here */
if let jsonData = jsonString.data(using: .utf8) {
do {
let decoder = JSONDecoder()
let decodedSleepTime = try decoder.decode(TotalSleepTime.self, from: jsonData)
print(decodedSleepTime)
} catch {
print("Error decoding from JSON: \(error)")
}
}
此项目已获得 MIT 许可证的许可。 有关更多信息,请参阅 Licenses。
此项目未获得 Open mHealth 或 IEEE 的官方认可。
此项目是斯坦福大学斯坦福 Byers 生物设计中心的一部分开发的。 有关所有 OMHModels 贡献者的完整列表,请参阅 CONTRIBUTORS.md。