2

我有一个应用程序可以输入 HealthKit 卡路里条目并运行 HKStatistics 查询以获取卡路里数据。

除了手动排除我所知道的我所写内容的数值之外,我似乎无法找到一种方法来设置一个只从不是我自己的应用程序的源返回数据的查询。

我使用了这样设置的谓词:

NSPredicate *pred = [NSPredicate predicateFromString:@"%K != %@", HKPredicateKeyPathSource, [HKSource defaultSource]];

但这会引发一个异常,即在查询源键时不允许使用“类型 5 运算符”。

苹果是否故意让这成为不可能?因为使用 '==' 运算符可以正常工作。

4

3 回答 3

0

我只是想更新它,以便如果有人想做类似的事情......

如果您只是在统计数据,最好的解决方法是进行两次查询并相互扣除数字。

查询 1(所有样本) - 查询 2(我的样本)

然后你就有了你想要的。

于 2015-01-11T17:58:32.663 回答
0

目前,仅支持“=”和“IN”运算符用于按源过滤 HKSamples 的谓词。

于 2015-01-11T03:08:17.317 回答
0

我会这样做:

NSPredicate *pred = [NSPredicate predicateFromString:@"%K != %@", HKPredicateKeyPathSource, [HKSource defaultSource]];
NSPredicate *nonPred = [NSCompoundPredicate notPredicateWithSubpredicate:pred];
于 2015-09-04T10:19:32.217 回答