Ios 忽略Apple Health app中作为数据源的手动输入

Ios 忽略Apple Health app中作为数据源的手动输入,ios,healthkit,Ios,Healthkit,嗨,我正在写一个健身应用程序,它从苹果健康应用程序获取数据 到目前为止还不错 问题:在健康应用程序中,可能会手动输入数据,从而导致作弊 问题:如何排除或忽略此特定数据项 只有“来源:健康”的数据,所以我仍然有可能从随机的健身跟踪器中读取数据 由用户手动输入的HealthKit中的样本对于HKMetadataKeyWasUserEntered元数据键将具有YES值。要创建仅匹配用户输入的样本的谓词,可以使用以下命令: [NSPredicate predicateWithFormat:@"metad

嗨,我正在写一个健身应用程序,它从苹果健康应用程序获取数据

到目前为止还不错

问题:在健康应用程序中,可能会手动输入数据,从而导致作弊

问题:如何排除或忽略此特定数据项

只有“来源:健康”的数据,所以我仍然有可能从随机的健身跟踪器中读取数据


由用户手动输入的HealthKit中的样本对于
HKMetadataKeyWasUserEntered
元数据键将具有YES值。要创建仅匹配用户输入的样本的谓词,可以使用以下命令:

[NSPredicate predicateWithFormat:@"metadata.%K != YES", HKMetadataKeyWasUserEntered];
请注意,这必须表示为
value!=是
,因为键的值可以是是、否或nil,而nil表示否。

Swift 4:

let predicate = NSPredicate(format: "metadata.%K != YES", HKMetadataKeyWasUserEntered)
如果有两个谓词,请使用CompoundPredicate:

let compoundPredicate = NSCompoundPredicate(type: .and, subpredicates: [predicate1, predicate2])

您基本上可以使用HKQuery将搜索限制在某些应用程序上,在HKQuery+(NSPredicate*)谓词ProbjectsFromSource:(HKSource*)source上查看此方法;谢谢节省了我的时间:)+1