首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Swift从HealthKit获取ios应用程序的骑行时长

如何使用Swift从HealthKit获取ios应用程序的骑行时长
EN

Stack Overflow用户
提问于 2016-07-12 15:29:35
回答 0查看 1.3K关注 0票数 1

我正在创建一个从health-Kit读取数据的应用程序。我能够读取步数,跑步+步行等,现在我正在尝试读取骑自行车的日期和持续时间。这就是我用来跑步和步行的东西

代码语言:javascript
运行
复制
func readDistanceWalkingRunning(completion: (([AnyObject]!, NSError!) -> Void)!) {
    let runningWalking = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDistanceWalkingRunning)
    let predicate = HKQuery.predicateForSamplesWithStartDate(NSDate().dateByAddingTimeInterval(-86400.0), endDate: NSDate(), options: HKQueryOptions.None)

    let stepsSampleQuery = HKSampleQuery(sampleType: runningWalking!,
                                         predicate: predicate,
                                         limit: 100,
                                         sortDescriptors: nil)
    { [weak self] (query, results, error) in

        if let results = results as? [HKQuantitySample] {

            for result in results {
                print(" Distance was " + " \(result.quantity.doubleValueForUnit(HKUnit.mileUnit())) ")
                print("Date was " + "\(result.startDate)")

            }
        }
    }

    // Don't forget to execute the Query!
    executeQuery(stepsSampleQuery)
}

一切都很好,但是当我尝试使用下面的代码读取自行车的距离时,我得不到任何结果。循环数据在appleHealth应用程序中显示,但为什么我得到的结果为零?请帮帮忙

代码语言:javascript
运行
复制
    func readDistanceCycling(completion: (([AnyObject]!, NSError!) -> Void)!) {
    let distanceCycling = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDistanceCycling)
    let predicate = HKQuery.predicateForSamplesWithStartDate(NSDate(), endDate: NSDate(), options: HKQueryOptions.None)

    let query = HKSampleQuery(sampleType: distanceCycling!, predicate: predicate, limit: 100, sortDescriptors: nil, resultsHandler: { query, result, error in


if result != nil
{
    print("We have some Data")
}
else
{
    print("Result is nil")
}

if let results = result as? [HKQuantitySample] {

    for result in results {
        print(" Quantity type " + " \(result.quantityType) ")
        print("Date was " + "\(result.startDate)")

    }
}
})

    executeQuery(query)
    }


    }
EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38322544

复制
相关文章

相似问题

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