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)
} }
谢谢你,但现在dateArray和stepArray只在函数内的范围内。即使我在外面发起他们,然后再给他们打电话,我也会得到零。我怎样才能得到dateArray和stepArray数据可以访问的功能范围之外? – KML 2014-12-27 23:58:21
@karlml使它们成为实例变量,并在获取查询后才使用它们。 – codester 2014-12-28 03:38:01
谢谢你的编码器 – KML 2014-12-28 11:41:40