1
여기에있는 것이므로 completionHandler의 Core Data에 오늘 단계를 저장하려고합니다. 그러나이 값을로드하는 동안 컴파일러는이 값을 전혀 표시하지 않습니다. 어떤 해결책?완료 처리기에서 값을 저장할 수 있습니까?
func fetchDataOfQuantityType(startDate: NSDate, endDate: NSDate, quantityType: HKQuantityType, completion:((NSArray, NSError!) -> Void)!) {
// initial a predicate with startDate and endDate
let predicate = HKQuery.predicateForSamplesWithStartDate(startDate, endDate: endDate, options: HKQueryOptions.StrictStartDate)
// initialize a HKStatisticsQuery
let query: HKStatisticsQuery = HKStatisticsQuery(quantityType: quantityType, quantitySamplePredicate: predicate, options: HKStatisticsOptions.CumulativeSum, completionHandler: { (query, results, error) in
if error != nil { // if there is an error print it
println("there is a \(error) occur")
return
}
// Mark: - Saving the data in to Core data
var todaySteps = results.sumQuantity().doubleValueForUnit(HKUnit.countUnit())
println("The totalstep for today is \(todaySteps)")
var appDel: AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
var context: NSManagedObjectContext = appDel.managedObjectContext!
var newUser = NSEntityDescription.insertNewObjectForEntityForName("User", inManagedObjectContext: context) as NSManagedObject
newUser.setValue(todaySteps, forKey: "todaysteps")
})
self.healthstore.executeQuery(query)
}
정말 고맙습니다. –