watchOS 2 コンプリケーションで非同期操作を実行すると、結果がランダムになることがわかりました。操作が完了して合併症が更新される場合と、そうでない場合があります。そのような例の 1 つは、HealthKit のクエリです。
let predicate = HKQuery.predicateForSamplesWithStartDate(start, endDate: toDate, options: [.StrictStartDate, .StrictEndDate])
let statisticsQuery = HKStatisticsQuery(
quantityType: quantityType,
quantitySamplePredicate: predicate,
options: options) { (query, statistics, error) -> Void in
handler(statistics)
}
self.healthKitStore.executeQuery(statisticsQuery)
このコードでは、約半分の時間でハンドラーが呼び出されます。私は何を間違っていますか?