问题
Hi I'm writing a Fitness App which gets its Data from Apples Health app.
So far so good.
Problem: in Health app it is possible to make manually data entries which makes it possible to cheat.
Question: how can i exclude or ignore this specific Data Entries.
Just the Data with "Source: Health" so i've still the possibility to read data from a random Fitness tracker.
回答1:
Samples in HealthKit that were manually entered by the user will have have a YES value for the HKMetadataKeyWasUserEntered
metadata key. To create a predicate that matches only samples that were not user-entered, you could do use the following:
[NSPredicate predicateWithFormat:@"metadata.%K != YES", HKMetadataKeyWasUserEntered];
Note that this must be formulated as value != YES
because the value for the key could be YES, NO, or nil and nil implies NO.
回答2:
Swift 4:
let predicate = NSPredicate(format: "metadata.%K != YES", HKMetadataKeyWasUserEntered)
And if you have two predicates, useCompoundPredicate:
let compoundPredicate = NSCompoundPredicate(type: .and, subpredicates: [predicate1, predicate2])
来源:https://stackoverflow.com/questions/31184628/ignore-manual-entries-from-apple-health-app-as-data-source