首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从HKSampleQuery访问元数据(Swift 4)

从HKSampleQuery访问元数据(Swift 4)
EN

Stack Overflow用户
提问于 2018-02-28 10:38:42
回答 1查看 545关注 0票数 0

所以我正在关注苹果文档的here

我要做的是访问HKSampleQuery上的HKMetadataKeyHeartRateMotionContext密钥。如果HrContext =1并且hr大于某个数字,我需要做一些事情。

代码如下:

代码语言:javascript
复制
  func sampleQ() -> HKQuery{
      let pre = HKQuery.predicateForSamples(withStart: Date().lastweek, end: nil)

      let que = HKSampleQuery(sampleType: heartRateType, predicate: pre, limit: Int(HKObjectQueryNoLimit), sortDescriptors: nil) {
         query, results, error in

         guard let samples = results as? [HKQuantitySample] else {
            fatalError("An error occured fetching the user's tracked food. In your app, try to handle this error gracefully. The error was: \(String(describing: error?.localizedDescription))");
         }
         print (samples)



         for sample in samples {
            print (sample)

            guard let hrContext =
               sample.metadata?[HKMetadataKeyHeartRateMotionContext] as? String else {

                  break
            }

            print(hrContext)

            print (hrContext+"i am the context")
         }




      }

      return que
   }

然后在这里执行代码:

代码语言:javascript
复制
func startToMeasure() {
        self.healthStore.execute(self.createStreamingQuery())
      self.healthStore.execute(self.sampleQ())
    }

由于某种原因,我在日志中得到的只是正常的流心跳数据和打印的元数据(尽管我无法访问它,而且它也没有打印我的任何hrContext语句)。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2018-02-28 10:58:31

心率-运动上下文本身的值是一个NSInteger,因此不能转换为String -该整数可以映射到HKHeartRateMotionContext的枚举情况。

代码语言:javascript
复制
let context = sample.metadata?[HKMetadataKeyHeartRateMotionContext] as? NSNumber
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49021119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档