如何在Swift 2.0中将HKQuantity转换为Int

4

这应该很简单,但我搞不清楚。我只需要将一个HKQuantity(在本例中为步数)转换为Int。


不,我会将 HKQuantitySample 转换为 HKQuantity:sample[2].quantity。 - Zander
1个回答

4
如果您拥有一个HKQuantitySample对象,则可以使用doubleValueForUnit函数将quantity属性转换为Int,如下所示:
let value = Int(sample.quantity.doubleValueForUnit(HKUnit.countUnit()))

sample是一个HKQuantitySample时,请记得在可选绑定时正确转换样本类型,如下所示:

请记住,在传递可选绑定时,需要正确地强制转换样本类型:

readFullSample(anyValueYouPassHere) { samples in
     for sample in samples as [HKQuantitySample] {
         let value = Int(sample.quantity.doubleValueForUnit(HKUnit.countUnit()))
     }
}

我希望这能帮助到您。

我得到了这个:2015-10-15 14:05:53.135 Export Health[79376:4267474] ***由于未捕获的异常 'NSInvalidArgumentException',原因是:'尝试转换不兼容的单位:m,count'...... libc++abi.dylib:以NSException类型终止 - Zander
请将您获取HKQuantitySample对象的完整查询放在此处。 - Victor Sigler
同样的错误 readFullSample(HKSampleType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeight)!) { (samples) -> Void in for sample in samples as [HKQuantitySample] { let value = Int(sample.quantity.doubleValueForUnit(HKUnit.countUnit())) } } - Zander
你能在Github上分享你的项目吗? - Victor Sigler
很抱歉浪费了您的时间。 - Zander
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接