0

我正在我的应用程序中从 Health Kit 中检索心率。但是我从 Health Kit 中获得了最新数据,我怎样才能获得每月的数据?我的意思是每个月的最后一次阅读..我看到 NSPredicate 可以用来这样做,但我不知道该怎么做..!! 我是新手,请帮忙!!

这是我访问心率的代码:

NSSortDescriptor *timeSortDescriptor = [[NSSortDescriptor alloc] initWithKey:HKSampleSortIdentifierEndDate ascending:NO];

HKSampleQuery *query = [[HKSampleQuery alloc] initWithSampleType:quantityType predicate:predicate limit:HKObjectQueryNoLimit sortDescriptors:@[timeSortDescriptor] resultsHandler:^(HKSampleQuery *query, NSArray *results, NSError *error) {
        if (!results) {
            if (completion)
            {
                completion(nil, error);
            }

        return;
    }

    if (completion) {
        // If quantity isn't in the database, return nil in the completion block.
        HKQuantitySample *quantitySample = results.firstObject;
        HKQuantity *quantity = quantitySample.quantity;

        completion(quantity, error);
    }
}];

[self executeQuery:query];

谓词代码:

NSDate *startDate = [NSDate dateWithYear:[NSNumber numberWithInt:2015] month:[NSNumber numberWithInt:1] day:[NSNumber numberWithInt:1] hour:[NSNumber numberWithInt:00] minute:[NSNumber numberWithInt:00] seconds:[NSNumber numberWithInt:00]];

NSDate *endDate = [NSDate dateWithYear:[NSNumber numberWithInt:2015] month:[NSNumber numberWithInt:30] day:[NSNumber numberWithInt:1] hour:[NSNumber numberWithInt:00] minute:[NSNumber numberWithInt:00] seconds:[NSNumber numberWithInt:59]];

NSPredicate *explicitTimeInterval =
    [NSPredicate predicateWithFormat:@"%K >= %@ AND %K < %@",
         HKPredicateKeyPathEndDate, startDate,
         HKPredicateKeyPathStartDate, endDate];
        self.healthStore = [[HKHealthStore alloc]init];

提前致谢 :)

4

0 回答 0