您好我正在编写一个健身应用程序,它可以从Apples Health应用程序中获取数据。
到目前为止一切顺利。
问题:在Health应用程序中,可以手动创建数据条目,从而可以作弊。
问题:如何排除或忽略此特定数据条目。
只有“来源:健康”的数据,所以我仍然可以从随机的健身追踪器中读取数据。
答案 0 :(得分:14)
用户手动输入的HealthKit中的样本将具有HKMetadataKeyWasUserEntered
元数据键的YES值。要创建仅匹配非用户输入的样本的谓词,您可以使用以下内容:
[NSPredicate predicateWithFormat:@"metadata.%K != YES", HKMetadataKeyWasUserEntered];
请注意,这必须表示为value != YES
,因为键的值可以是YES,NO或nil,nil表示NO。
答案 1 :(得分:3)
迅速4:
let predicate = NSPredicate(format: "metadata.%K != YES", HKMetadataKeyWasUserEntered)
如果您有两个谓词,请使用CompoundPredicate:
let compoundPredicate = NSCompoundPredicate(type: .and, subpredicates: [predicate1, predicate2])