私は、iOSデバイスからステップデータを読み込むためにHealthKitを使用しています。ここHealthKitがステップデータを読み取ることができません
は私のコードです:
if ([HKHealthStore isHealthDataAvailable]) {
__block double stepsCount = 0.0;
self.healthStore = [[HKHealthStore alloc] init];
NSSet *stepsType =[NSSet setWithObject:[HKObjectType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount]];
[self.healthStore requestAuthorizationToShareTypes:nil readTypes:stepsType completion:^(BOOL success, NSError * _Nullable error) {
if (success) {
HKSampleType *sampleType = [HKSampleType quantityTypeForIdentifier:HKQuantityTypeIdentifierStepCount];
HKSampleQuery *sampleQuery = [[HKSampleQuery alloc] initWithSampleType:sampleType predicate:nil limit:HKObjectQueryNoLimit sortDescriptors:nil resultsHandler:^(HKSampleQuery *query, NSArray *results, NSError *error) {
if (error != nil) {
NSLog(@"results: %lu", (unsigned long)[results count]);
for (HKQuantitySample *result in results) {
stepsCount += [result.quantity doubleValueForUnit:[HKUnit countUnit]];
}
NSLog(@"Steps Count: %f", stepsCount);
} else {
NSLog(@"error:%@", error);
}];
[self.healthStore executeQuery:sampleQuery];
[self.healthStore stopQuery:sampleQuery];
NSLog(@"steps:%f",stepsCount);
}
}];
}
私が構築し、手順データを持っているiPhone6上のコードを実行すると設定に - >プライバシー - >健康、アプリがデータを読み取ることが許されていませんしかし、ログ領域のみを示しています
steps:0.000000
を私はforループにしてNSLog(@"error:%@", error)
にブレークポイントを置くが、アプリは中断されません。
誰でも助けることができますか?
エラーパラメータを確認しませんでしたか?あなたは 'results:%lu' logを調べますか?私はそれが 'stopQuery:'どこにあるのかは分かりません。奇妙に思える。 – Larme
@Larme私は 'error'もチェックしましたが、' NSLog(@ "error:%@"、error) 'は何も記録しませんでした。 – CokileCeoi