Ios 健康套件->;查询已附加路线的训练
我想查询Ios 健康套件->;查询已附加路线的训练,ios,healthkit,Ios,Healthkit,我想查询HealthKit中所有附加了训练路线的训练。有没有一种方法可以用谓词来实现 我通过查询获得所有训练,然后一个查询获得该训练的路线,然后另一个查询获得路线数据,从而实现了这一功能。。。 但这对我来说似乎效率很低 查询训练后,需要查询训练路线,然后查询训练位置: 请求许可: 查询训练: 获取路由示例对象: 访问路线样本的位置数据: 更多信息:您在这方面有什么进展吗?我正在努力解决同样的问题,但我只从HealthKit查询中获得分段的位置结果。下面的答案没有帮助,因为它只是文档的重复。这只是
HealthKit
中所有附加了训练路线的训练
。有没有一种方法可以用谓词来实现
我通过查询获得所有训练,然后一个查询获得该训练的路线,然后另一个查询获得路线数据,从而实现了这一功能。。。
但这对我来说似乎效率很低 查询训练后,需要查询训练路线,然后查询训练位置:
请求许可:
查询训练:
获取路由示例对象:
访问路线样本的位置数据:
更多信息:您在这方面有什么进展吗?我正在努力解决同样的问题,但我只从HealthKit查询中获得分段的位置结果。下面的答案没有帮助,因为它只是文档的重复。这只是文档的重复,您能否提供有关如何填写路线查询代码以将位置数据添加到地图的详细信息?
let runningObjectQuery = HKQuery.predicateForObjects(from: myWorkout)
let routeQuery = HKAnchoredObjectQuery(type: HKSeriesType.workoutRoute(), predicate: runningObjectQuery, anchor: nil, limit: HKObjectQueryNoLimit) { (query, samples, deletedObjects, anchor, error) in
guard error == nil else {
// Handle any errors here.
fatalError("The initial query failed.")
}
// Process the initial route data here.
}
routeQuery.updateHandler = { (query, samples, deleted, anchor, error) in
guard error == nil else {
// Handle any errors here.
fatalError("The update failed.")
}
// Process updates or additions here.
}
store.execute(routeQuery)
// Create the route query.
let query = HKWorkoutRouteQuery(route: myRoute) { (query, locationsOrNil, done, errorOrNil) in
// This block may be called multiple times.
if let error = errorOrNil {
// Handle any errors here.
return
}
guard let locations = locationsOrNil else {
fatalError("*** Invalid State: This can only fail if there was an error. ***")
}
// Do something with this batch of location data.
if done {
// The query returned all the location data associated with the route.
// Do something with the complete data set.
}
// You can stop the query by calling:
// store.stop(query)
}
store.execute(query)