UILabel显示问题,打印到我的UILabel产生奇怪的输出?

时间:2015-11-09 19:56:04

标签: ios swift uiviewcontroller uilabel health-kit

我正在尝试构建一个应用程序,只需从HealthKit中读取用户Active Energy,然后在标签中将数字打印到屏幕上。但奇怪的是,输出看起来如下所示,而不仅仅是打印出一个数字:

enter image description here

我知道它会打印活动的KiloCalories以及请求的时间,但我怎么能够

A)删除所有不必要的文本,只打印出一个代表活动能量的整数B)将数据更新与HealthKit一起生效C)将KiloCalories转换为卡路里

我对Swift相当新,所以我不确定该怎么做。我知道要将KiloCalories转换为卡路里,我可以在数学上计算结果,但Swift中必须有一些东西可以自动为我完成。无论如何,感谢您提前提供任何帮助!

我的代码如下:

import UIKit
import HealthKit

class ViewController: UIViewController {

    @IBOutlet weak var displayData: UILabel!

    override func viewDidLoad() {

        super.viewDidLoad()

        // create store

        let healthStore = HKHealthStore()

        let startDate = NSDate.distantPast()
        let endDate = NSDate()

        // create an object type to request an authorization for a specific category, here is SleepAnalysis

        if let energyType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierActiveEnergyBurned) {

            let setType = Set<HKSampleType>(arrayLiteral: energyType)
            healthStore.requestAuthorizationToShareTypes(setType, readTypes: setType, completion: { (success, error) -> Void in
                // here is your code
            })
        }

        if let energyType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierActiveEnergyBurned) {

            // we create a predicate to filter our data
            let predicate = HKQuery.predicateForSamplesWithStartDate(startDate,endDate: endDate ,options: .None)

            // I had a sortDescriptor to get the recent data first

            let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierEndDate, ascending: false)

            // we create our query with a block completion to execute

            healthStore.executeQuery(HKSampleQuery(
                sampleType: energyType,
                predicate: predicate,
                limit: 30,
                sortDescriptors: [sortDescriptor],
                resultsHandler: { (query: HKSampleQuery?, results: [HKSample]?, err: NSError?) -> Void in
                    if err != nil {
                        // ERROR Occurred, handled it
                        print(err)
                        return
                    }
                    var labelText = ""
                    for result in results as! [HKQuantitySample]! {
                        // SUCCESS, use results here
                        labelText += "\(result)"
                    }
                    self.displayData.text = labelText
                }


                ))

        }

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

0 个答案:

没有答案