获取 HealthKit 中每个日期的总步数

2024-04-12

获取每天记录的总步数的最佳方法是什么HealthKit。 通过 HKSampleQuery 的方法 initWithSampleType (见下文),我可以使用以下命令设置查询的开始和结束日期NSPredicate,但该方法每天返回一个包含许多 HKQuantitySample 的数组。

- (instancetype)initWithSampleType:(HKSampleType *)sampleType
                     predicate:(NSPredicate *)predicate
                         limit:(NSUInteger)limit
               sortDescriptors:(NSArray *)sortDescriptors
                resultsHandler:(void (^)(HKSampleQuery *query,
                                         NSArray *results,
                                         NSError *error))resultsHandler

我想我可以查询所有记录的步数并遍历数组并计算每天的总步数,但我希望有一个更简单的解决方案,因为将有数千个 HKSampleQuery 对象。有没有办法让 initWithSampleType 返回每天的总步数?


你应该使用香港统计资料查询 https://developer.apple.com/library/prerelease/ios/documentation/HealthKit/Reference/HKStatisticsCollectionQuery_Class/index.html:

NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *interval = [[NSDateComponents alloc] init];
interval.day = 1;

NSDateComponents *anchorComponents = [calendar components:NSCalendarUnitDay | NSCalendarUnitMonth | NSCalendarUnitYear
                                                 fromDate:[NSDate date]];
anchorComponents.hour = 0;
NSDate *anchorDate = [calendar dateFromComponents:anchorComponents];
HKQuantityType *quantityType = [HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];

// Create the query
HKStatisticsCollectionQuery *query = [[HKStatisticsCollectionQuery alloc] initWithQuantityType:quantityType
                                                                       quantitySamplePredicate:nil
                                                                                       options:HKStatisticsOptionCumulativeSum
                                                                                    anchorDate:anchorDate
                                                                            intervalComponents:interval];

// Set the results handler
query.initialResultsHandler = ^(HKStatisticsCollectionQuery *query, HKStatisticsCollection *results, NSError *error) {
    if (error) {
        // Perform proper error handling here
        NSLog(@"*** An error occurred while calculating the statistics: %@ ***",error.localizedDescription);
    }

    NSDate *endDate = [NSDate date];
    NSDate *startDate = [calendar dateByAddingUnit:NSCalendarUnitDay
                                             value:-7
                                            toDate:endDate
                                           options:0];

    // Plot the daily step counts over the past 7 days
    [results enumerateStatisticsFromDate:startDate
                                  toDate:endDate
                               withBlock:^(HKStatistics *result, BOOL *stop) {

                                   HKQuantity *quantity = result.sumQuantity;
                                   if (quantity) {
                                       NSDate *date = result.startDate;
                                       double value = [quantity doubleValueForUnit:[HKUnit countUnit]];
                                       NSLog(@"%@: %f", date, value);
                                   }

                               }];
};

[self.healthStore executeQuery:query];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取 HealthKit 中每个日期的总步数 的相关文章

  • 如何读取 Xcode 6.1 Instruments .trace 文件?

    我一直在尝试阅读 trace文件 我使用生成的custom仪器模板 仪器 自动机 分配 Leaks using 仪器 https developer apple com library mac documentation Developer
  • 如何将数据从一个视图传递到下一个视图?

    我正在制作一个下载排队系统来下载视频 处理下载的排队代码位于另一个视图控制器中 现在我的问题是如何将下载的 URL 传递到另一个视图而不推送到另一个视图控制器 如下所示 ViewConntroller View ViewConntrolle
  • 如何用Block简化回调逻辑?

    假设我需要与一个提供协议的类进行通信 并在操作完成时调用委托方法 如下所示 protocol SomeObjectDelegate required void stuffDone id anObject void stuffFailed e
  • 显示器连接或断开连接时的通知

    我正在开发一个 OS X 应用程序 该应用程序在所有连接的显示器的所有可用空间上显示自定义窗口 我可以通过调用 NSScreen Screens 获取可用显示对象的数组 我目前缺少的是一种判断用户是否将显示器连接到系统或从系统断开屏幕的方法
  • AppDelegate 的变量用作全局变量不起作用

    我想使用我的 AppDelegate 来存储任何其他类都可以访问的对象 我已经像这样声明了这个 AppDelegate interface MyAppDelegate UIResponder
  • 为什么没有收到(UDP 多播)数据包?

    所以 我一直试图弄清楚为什么这不起作用 但我没有任何线索 我已经成功地从 iPhone 发送数据包并在 Mac 上接收它们 根据 tcpdump 我的 mac 正确发送数据包 此外 如果我在模拟器中运行它 它工作得很好 这让我相信这是一个网
  • 如何从日期中获取小时、分钟和上午/下午? [复制]

    这个问题在这里已经有答案了 我尝试从日期中提取小时 分钟和上午 下午 但我得到 NULL 输出 我在下面显示了我的代码 请查看 NSString dateStr 29 07 2013 02 00am NSDateFormatter form
  • 使用 Cocoa/OSX 合并/堆叠两个图像

    我有一个 CGImageRef 我们称之为原始图像 和一个透明 png 水印 我正在尝试编写一种方法将水印放置在原始内容之上 并返回 CGImageRef 在 iOS 中 我会使用 UIKit 将它们绘制到上下文中 但这在 OSX 中似乎不
  • 由于 2.23 导致 iOS 应用程序被拒绝 - iOS 数据存储指南

    以下是 Apple 关于拒绝的消息 2 23 应用程序必须遵循 iOS 数据存储指南 否则将被拒绝 2 23 详情 在启动和内容下载时 您的应用程序会存储 6 5 MB 这并不意味着 遵守 iOS 数据存储指南 下一步 请验证只有用户使用您
  • AVPlayer 不播放音频 - iOS 9,目标 - C

    我正在尝试从我的应用程序中的 URL 播放音频 iOS 8 中一切都按预期发生 模拟器和物理设备 对于 iOS 9 它可以在模拟器中运行 但在设备上 音频根本无法播放 出现流媒体 如果我单击播放 进度条还显示音频正在加载并播放 但没有声音
  • 与新 Apple Music 应用程序中相同的动态状态栏

    是否可以动态着色statusBar这是在新的苹果音乐应用程序 Edit iOS 8 4 中的新 Apple Music 应用程序具有此功能 打开应用程序 选择并播放歌曲 状态栏为白色 向下滑动播放器控制器以查看 我的音乐 控制器 它有黑色状
  • 如何检索 iPhone 的区域设置

    我用谷歌搜索过它 但令我有点惊讶的是我找不到它 我只想访问设备配置的区域设置 我试图找到如何列出所有系统属性 以防我能在那里找到区域设置 但甚至找不到如何做到这一点 我知道 认为 我之前检索过系统属性 但我也记得在谷歌搜索时找到该信息并不容
  • 当 ViewController 从 UIStoryboard 实例化时,isMemberOfClass 返回 no

    我有一个 OCUnit 测试类 PatientTestViewControllerTests 下面是界面 interface PatientTestViewControllerTests SenTestCase property nonat
  • 动画 UICollectionView 单元格大小更改并重新定位周围单元格

    Goal 以动画方式改变单元格的高度并重新定位周围的单元格 设想 集合视图中的某些单元格会加载远程图像 最初 这些单元格的大小是静态的 并显示活动指示器 加载图像后 会将其添加到其单元格中 并且更改单元格的高度以适合照片 Notes 我正在
  • iPhone Twitter SDK 与 iOS 5 设备的集成问题

    我已成功将 Twitter Sharekit 与我的 iPad 应用程序源集成 当我在模拟器和装有 iOS 4 X 的 iPad 1 上测试该应用程序时 它运行完美 并且成功发布了推文 但是 如果我在装有 iOS 5 的 iPad 2 上安
  • 对象指针值作为字典的键

    我想使用对象的引用值作为字典的键 而不是对象值的副本 因此 我本质上想在字典中存储与另一个对象的特定实例关联的对象 并稍后检索该值 这可能吗 是不是完全违背了NSDictionary的理念 我可以看出我可能以错误的方式处理这个问题 因为字典
  • 如何去掉 UIWebView 上的状态栏背景?

    从 iOS 11 开始 当UIWebView全屏时 状态栏上会出现与屏幕颜色相同的假背景UIWebView背景 有人知道如何摆脱它吗 甚至添加IUWebView到故事板并使其全屏将使状态栏背景出现 我一直在尝试编辑 UIWebView 的大
  • 如何重新定位或移动 Google Maps SDK 上的当前位置按钮?

    如何将 Objective C 中的当前位置按钮移至我的偏好 现在 我已启用它 但底角有东西挡住了它 Thanks 您可以使用 padding 将按钮向上移动 self mapView padding UIEdgeInsets top 0
  • 在文本视图滚动之前无法看到 UITextView 中的文本

    我的应用程序中有一堆文本视图 由于某种原因 无论我以编程方式 来自互联网 还是通过界面生成器 硬编码 设置 UITextView 文本 无论我做什么 当我在测试时转到该文本视图时它都是空白的 但当我滚动它的那一刻 所有文本就突然出现了 只是
  • Objective-C:int值无故改变

    Objective C 我需要帮助保留 int 的值 无需我的命令 它就在我身上发生变化 最初的问题是 如何声明和保留 int 这在另一篇文章中得到了满足 Objective C 如何声明和保留 int https stackoverflo

随机推荐

  • mclapply 遇到取决于核心 id 的错误?

    我有一组基因 我需要并行计算一些系数 系数在里面计算GeneTo GeneCoeffs filtered它将基因名称作为输入并返回 2 个数据框的列表 长度为 100gene array我使用不同数量的核心运行此命令 5 6 和 7 Coe
  • 从字符串中获取“$#”的所有正则表达式匹配项

    我有一个字符串 其中包含多个美元符号实例 后跟一个正数 我需要使用正则表达式获取每个实例 这是一个字符串的示例 This that 1 who 2 到目前为止 我使用 vb net 得到的结果如下 Dim wordSplitMatches
  • npm ci 命令失败并显示“无法读取未定义的属性‘@angular/animations’”

    在为我的 Angular 项目执行 docker build 时 在npm ci步骤 我收到以下错误 Cannot read property angular animations of undefined 由于没有正确的错误 我们无法找到
  • 重复AlarmManager如何启动AsyncTask?

    我通常编写这段代码来启动服务AlarmManager intent new Intent getActivity someservice class pendingNotificationIntent PendingIntent getSe
  • 在位图上绘制长字符串会导致绘图问题

    我正在将一个长字符串绘制到位图 超过一百万个字符 包括多行字符 r n 由一个写StringBuilder 我的文本转位图代码如下 public static Bitmap GetBitmap string input Font input
  • 是否可以以编程方式抛出 NullPointerException? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 当有后置条件 方法的返回值不能为null时 怎么办 我可以 assert returnValue null Not acceptable nul
  • 防病毒软件将 python.exe 检测为 idp.generic?

    我开始学习Python 安装了 python 2 7 和 Pycharm 当我在 Pycharm 中打开 python 控制台时 我的防病毒软件警告我路径中的 python exevenv Scripts被感染IDP Generic 以前有
  • SDL 2.0源码中有1.3吗?

    我正在研究 SDL 2 0 源代码 注意到其中有另一个声称是 1 3 版本的 SDL 文件夹 我对它很感兴趣 因为它有 android iphone 和其他一些的源代码 稳定版本 1 2 似乎有很大不同 我的问题是这样的 SDL 维基链接
  • 基于原型的 OO 与基于类的 OO 相比有哪些优点?

    为什么基于类的 OO 如此受欢迎 而不是基于原型的 OO 他们在学校教授后者吗 尽管 Javascript 是基于原型的 但大多数人主要是在功能上使用它 或者通过尝试模拟基于类的系统的框架 我知道Sun已经做了一些研究Self http r
  • 游戏开发者的 Flash 性能:本机渲染 VS BitmapData 帧缓冲区

    我开发了一款 2D 射击游戏很多物体 and 激进的滚动 问题 哪种方式更好 选择 1 使用原生 Flash 渲染 从 Bitmap 派生游戏对象 使用现有的 x y 宽度 高度 bitmapData 将所有对象添加为子 UI Compon
  • Win7 上的 ASP.Net 中的 EventLog 权限失败

    我有一个 ASP Net 应用程序 net 3 5 SP1 在 Win7 中运行 在登录过程中 ASP Net 登录控件中的某些内容导致写入事件日志中的安全日志 这听起来对我来说可以接受 问题是该应用程序似乎没有执行此操作的权限 有错误的是
  • LINQ 结果在 for 循环结束时发生变化

    当对数据源执行一组 LINQ 查询时 我使用的是 LINQ to SQL 但这里也只使用List
  • 如何将 docx 转换为 json 以用于 firebase

    我在 Docx 中存储了引号 但我想将其转换为 JSON 因此我不必在 firebase 中手动添加每个单独的引号 这里是 file 这是我的数据库的样子以及我想如何在 firebase 中存储报价的 SS 现在 如何将 docx 文件转换
  • 未捕获的错误:没有模块:用户 Angularjs

    这是这个的后续问题如何使用rails服务器在Angular中获取索引数据 https stackoverflow com questions 18312689 how to fetch index data in angular using
  • Python,在我的 python 代码中出现了意外的关键字参数 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我的 python 代码一直给我这个错误 这是我尝试调用的函数 其下面是调用它的代码 from sys import stdout
  • 等待异步函数在地图内完成

    考虑以下简单的代码 await Promise all arrayOfObjects map async obj gt return await someAsyncFunctionOnObj obj 我的问题是 对象数组 and 对象上的一
  • cocos2d中的水效果

    我想在我的应用程序的背景层上有水效果 该效果不需要对触摸或任何东西做出反应 它只需要稍微晃动图像即可 CCWaves3D 看起来不错 但当我运行它时 边缘周围留下了令人讨厌的黑色伪影 类似CCShaky3D CCLiquid 将我的应用程序
  • 当超过两行时如何纠正 ConstraintLayout TextView 重叠

    我遇到约束布局问题 其中一个文本视图中到达第二行的文本不会向下推被限制在其下方的另一个文本视图 直到该行的中间 我用三个文本视图构建了一个简单的布局 第一个文本视图位于左侧并具有设定的宽度 第二个位于它的右侧 位于它与其父级之间 第三个位于
  • OS X Mavericks 安装 rvm 警告

    在终端中运行时 curl L https get rvm io bash s 它似乎工作正常 但在最后的升级说明中它说 WARNING You have profile file you might want to load it to d
  • 获取 HealthKit 中每个日期的总步数

    获取每天记录的总步数的最佳方法是什么HealthKit 通过 HKSampleQuery 的方法 initWithSampleType 见下文 我可以使用以下命令设置查询的开始和结束日期NSPredicate 但该方法每天返回一个包含许多