2014-11-22 2 views
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) 
} 

답변

0

이렇게하면 컨텍스트를 저장하지 않은 것처럼 보입니다. 시도해보십시오.

var error: NSError? 
context.save(&error) 

값을 설정하면됩니다.

+0

정말 고맙습니다. –

관련 문제