什么类型的HealthKit单位用于VO2 Max测量?(What type of HealthKit unit is used for VO2 Max measurements? - Swift 4)
我正在使用Apple的HealthKit在Swift 4中编写一个应用程序。 我正在尝试写入“VO2 Max”指标,但我不确定使用哪个单位。 在Health App本身中,单位列为“mL /(kg * min)”,但我在Apple的文档中没有看到类似的内容。 我的代码看起来像这样。 我该怎么代替??? 在第二行?
writeHKMetric = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.vo2Max)! writeHKQuantity = HKQuantity.init(unit: HKUnit.???, doubleValue: 1)
(作为参考,写入的代码,比方说,Cycling Distance看起来像这样。注意“HKUnit.mile()”)
writeHKMetric = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.distanceCycling)! writeHKQuantity = HKQuantity.init(unit: HKUnit.mile(), doubleValue: 1)
当我尝试使用另一个指标,比如计数时 ,我收到此错误:
2017-12-14 22:08:01.876935-0500 Stand Hours 2.0[478:76005] *** Terminating app due to uncaught exception '_HKObjectValidationFailureException', reason: 'HKQuantitySample 1 count (2017-12-08 08:00:00 -0500 - 2017-12-08 08:00:00 -0500) requires unit of type Volume/Mass·Time. Incompatible unit: count'
但我不知道如何将我的单位设置为“音量/质量*时间”。
I am writing an app in Swift 4 that uses Apple's HealthKit. I am trying to write to the "VO2 Max" metric, but I am not sure which unit to use. In the Health App itself, the unit is listed as "mL/(kg*min)" but I don't see anything like that in Apple's documentation here. My code looks like this. What should I put in place of the ??? on the second line?
writeHKMetric = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.vo2Max)! writeHKQuantity = HKQuantity.init(unit: HKUnit.???, doubleValue: 1)
(As a reference, code to write to, say, Cycling Distance looks like this. Note the "HKUnit.mile()")
writeHKMetric = HKQuantityType.quantityType(forIdentifier: HKQuantityTypeIdentifier.distanceCycling)! writeHKQuantity = HKQuantity.init(unit: HKUnit.mile(), doubleValue: 1)
When I attempt to use another metric, say count, I get this error:
2017-12-14 22:08:01.876935-0500 Stand Hours 2.0[478:76005] *** Terminating app due to uncaught exception '_HKObjectValidationFailureException', reason: 'HKQuantitySample 1 count (2017-12-08 08:00:00 -0500 - 2017-12-08 08:00:00 -0500) requires unit of type Volume/Mass·Time. Incompatible unit: count'
But I don't know how to set my unit to "Volume/Mass*Time".
原文:https://stackoverflow.com/questions/47825244
最满意答案
您可以使用BCrypt之类的东西来散列用户ID(或电子邮件或其他内容),并将系统盐硬编码到您的应用程序代码中,也可以使用您自己的算法生成每用户盐,这将阻止您执行任何操作数据库中从User表连接到Sensitive表的查询。
这将使得访问您的数据库而不是您的应用程序代码的人难以计算出关系。
You can hash the user ID (or email, or something) using something like BCrypt with a system salt that is hard-coded into your application code, and maybe a per-user salt generated using your own algorithm, which will stop you doing any queries in the database that join from the User table to the Sensitive table.
That will make it difficult for somebody who gains access to your database, but not your application code, to work out the relationships.