Исключить собственные образцы из запросов HealthKit

Я пишу приложение, которое, среди прочего, считывает образцы веса из HealthKit.
Я также пишу образцы.
Я пытаюсь прочитать последний образец, который не принадлежит мне:

NSPredicate* non_fdct = [NSCompoundPredicate notPredicateWithSubpredicate:[HKQuery predicateForObjectsFromSource:[HKSource defaultSource]]];
NSSortDescriptor *last = [[NSSortDescriptor alloc] initWithKey:HKSampleSortIdentifierEndDate ascending:NO];
HKSampleQuery* query = [[HKSampleQuery alloc] initWithSampleType:[HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierBodyMass] predicate:non_fdct limit:1 sortDescriptors:@[last] resultsHandler:^(HKSampleQuery *query, NSArray *results, NSError *error) {  ... };

Но я возьму собственные образцы, если это последние образцы.
Есть идеи?


person Moshe Gottlieb    schedule 16.11.2014    source источник


Ответы (1)


То, как вы построили предикат non_fdct, не совсем правильно. Попробуйте это вместо этого:

NSPredicate *non_fdct = [NSPredicate predicateFromString:@"%K != %@", HKPredicateKeyPathSource, [HKSource defaultSource]];

person Allan    schedule 25.11.2014
comment
Если это правда, то я полностью пропустил, как должны работать эти предикаты. В настоящее время я фильтрую по своему идентификатору пакета, прокомментирую / приму это, как только проверю, 10x! - person Moshe Gottlieb; 26.11.2014