2014-12-27 79 views
0

我试图以完成处理程序的结果来分配结果,以便我可以使用它来绘制图库。目前的数据打印到控制台 控制台输出:如何将结果处理程序的结果赋值给变量?

[(200.0,2014-12-26 12点44分00秒0000),300.0,2014年12月25日12点44分00秒0000 )]

- 问题:我需要在图中使用这些数据。我怎样才能改变我的视图控制器或QueryHKArray2代码,这样我可以将数据分配给一个变量与此类似:

  • VAR dateArray = query.performHKQuery()日期
  • VAR间隔阵列= query.performHKQuery( ).stepCount

任何帮助非常感谢!

的ViewController:

import UIKit 


class ViewControllerArray2: UIViewController { 

    var query = QueryHKArray2() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     printStepsAndDate() 
    } 


    func printStepsAndDate() { 
     query.performHKQuery() { stepCount in 
      println(stepCount) 

     } 
    } 

QueryHKArray2类:

import UIKit 
import HealthKit 

class QueryHKArray2: NSObject { 

    func performHKQuery(completion: ([(steps: Double, date: NSDate)]) -> Void) { 

     let healthKitManager = HealthKitManager.sharedInstance 
     let stepsSample = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount) 
     let stepsUnit = HKUnit.countUnit() 
     let sampleQuery = HKSampleQuery(
      sampleType: stepsSample, 
      predicate: nil, 
      limit: 0, 
      sortDescriptors: nil) 
      { 
       (sampleQuery, samples, error) in 

       if let samples = samples as? [HKQuantitySample] { 

        let steps = samples.map { (sample: HKQuantitySample)->(steps: Double, date: NSDate) in 
         let stepCount = sample.quantity.doubleValueForUnit(stepsUnit) 
         let date = sample.startDate 
         return (steps: stepCount, date: date) 
        } 

        completion(steps) 
       } 

     } 
     healthKitManager.healthStore.executeQuery(sampleQuery) 
    } } 

回答

1

可以遍历stepCount并获得tuple

func printStepsAndDate() { 
    var dateArray:[NSDate] = [] 
    var stepArray:[Double]= [] 
    query.performHKQuery() { stepCount in 
     for temp in stepCount { 
      stepArray.append(temp.steps) 
      dateArray.append(temp.date) 
     } 

    } 
} 
+0

谢谢你,但现在dateArray和stepArray只在函数内的范围内。即使我在外面发起他们,然后再给他们打电话,我也会得到零。我怎样才能得到dateArray和stepArray数据可以访问的功能范围之外? – KML 2014-12-27 23:58:21

+0

@karlml使它们成为实例变量,并在获取查询后才使用它们。 – codester 2014-12-28 03:38:01

+0

谢谢你的编码器 – KML 2014-12-28 11:41:40

相关问题