我有一个应用程序,可以生成HealthKit卡路里条目并运行HKStatistics查询来获取卡路里数据。
除了手动排除我所知道的数字值之外,我似乎无法找到一种设置查询的方法,该查询仅返回来自非我自己的应用程序的数据源。
我使用了如下设置的谓词:
NSPredicate *pred = [NSPredicate predicateFromString:@"%K != %@", HKPredicateKeyPathSource, [HKSource defaultSource]];
但是,这引发了一个例外,即在查询源密钥时不允许使用“类型5运算符”。
苹果有意让这不可能吗?因为使用'=='运算符可以正常工作。
答案 0 :(得分:0)
目前,只有" ="和" IN"运算符支持谓词按源过滤HKSamples。
答案 1 :(得分:0)
我只是想更新这个,以便任何人都想做类似的事情......
如果您只是在统计数据之后,最好的解决方法是进行两次查询并相互扣除数字。
查询1(所有样本) - 查询2(我的样本)
然后你有你想要的东西。
答案 2 :(得分:0)
我会这样做:
NSPredicate *pred = [NSPredicate predicateFromString:@"%K != %@", HKPredicateKeyPathSource, [HKSource defaultSource]];
NSPredicate *nonPred = [NSCompoundPredicate notPredicateWithSubpredicate:pred];