HealthKit关于不能获取及时数据的问题

昨天重构公司代码, 有计步功能的模块需要重构, 之前的代码是用CoreMotion框架来实现, 乍一看没有任何问题, 但是疯狂摇手机.....哔了

本着完美主义的原则, 打算使用HealthKit来实现, 查了很多资料都是复述基本使用的, 但是通过Simple还是不能拿到及时的数据更新,  不过昨晚睡了一觉豁然开朗了哈哈哈, 使用HKObserverQuery就可以解决.

话不多说 附上代码.

Demo  密码:8ti1

不对的地方感谢指点, 求大神轻拍脸

补充一下想要防止恶意数据填充可以使用HKQuantitySample类下的sourceRevision.source.name和当前设备名判断

昨天还看到有的同学对NSPredicate的options选项有疑问这里给大致翻译一下

HKQueryOptionNone:

样本的开始时间必须等于或晚于目标的开始时间,样品的结束时间必须早于目标的结束时间。

HKQueryOptionStrictStartDate:

样本的开始时间必须等于或晚于目标的开始时间,样品的开始时间必须早于目标的结束时间。

HKQueryOptionStrictEndDate:

样本的结束时间必须等于或晚于目标的开始时间,样品的结束时间必须早于目标的结束时间。

你可能感兴趣的:(HealthKit关于不能获取及时数据的问题)