iOS Swift,如何区分使用 Apple Watch 和 iPhone 的步骤?

Posted

技术标签:

【中文标题】iOS Swift,如何区分使用 Apple Watch 和 iPhone 的步骤?【英文标题】:iOS Swift, How to differentiate the steps using Apple Watch and iPhone? 【发布时间】:2018-09-17 17:22:15 【问题描述】:

我正在使用 HealthKit 框架来检索使用 HKSource 的用户的步骤。 在 Xcode Objective C 中,我使用 Bundle Identifier 来区分 watch/iPhone 的步骤。但是使用 Swift 我无法做到这一点。请建议。

提前致谢。

【问题讨论】:

【参考方案1】:

在查询选项中使用.separateBySource。例如:

guard let sampleType = HKObjectType.quantityType(forIdentifier: .stepCount)
    else 
        fatalError("Couldn't create the quantityType for .stepCount")

let calendar = Calendar.current
var dateComponents = DateComponents()
dateComponents.day = 1

var anchorComponents = calendar.dateComponents([.day, .month, .year], from: Date())
anchorComponents.hour = 0
guard let anchorDate = calendar.date(from: anchorComponents) else 
    fatalError("Couldn't get the anchor date")


let stepsCumulativeQuery =
    HKStatisticsCollectionQuery(quantityType: sampleType,
                                quantitySamplePredicate: nil,
                                options: [.cumulativeSum , .separateBySource],
                                anchorDate: anchorDate,
                                intervalComponents: dateComponents)

【讨论】:

以上是关于iOS Swift,如何区分使用 Apple Watch 和 iPhone 的步骤?的主要内容,如果未能解决你的问题,请参考以下文章

如何更新 Apple 地图中的路线 - iOS 13.0 中的 Xcode Swift 5?

Apple 在 iOS (Swift) 上使用 FirebaseUI 登录不起作用

如何在 iOS 中读取、写入和检查不区分大小写的文件名?

Apple 的 iPad 版 Swift Playgrounds 应用程序如何执行代码?

使用 Swift 在 iOS 中远程控制事件

使用我的 ios App iOS 9 Swift 2.2 中的路线打开 Apple Maps App