忽略Apple Health应用程序中的手动条目作为数据源

时间:2015-07-02 12:23:42

标签: ios health-kit

您好我正在编写一个健身应用程序,它可以从Apples Health应用程序中获取数据。

到目前为止一切顺利。

问题:在Health应用程序中,可以手动创建数据条目,从而可以作弊。

问题:如何排除或忽略此特定数据条目。

  
    

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

  

2 个答案:

答案 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])