0

当我使用 HKSampleQuery 提取 HealthKit 数据时,我创建了一个数组,然后填充了一个表格视图。但是,当我这样做时,我的 tableViewCell 在血糖数之后还有许多其他字符。这是单元格的屏幕截图:

在此处输入图像描述

这是我查询数据的地方。请提供任何帮助!

    let endDate = NSDate()
    let startDate = NSCalendar.current.date(byAdding: .day, value: number, to: endDate as Date)
    let sampleType = HKSampleType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bloodGlucose)
    let mostRecentPredicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate as Date, options: [])
    let query = HKSampleQuery(sampleType: sampleType!, predicate: mostRecentPredicate, limit: HKObjectQueryNoLimit, sortDescriptors: nil) { (query, results, error) in
        if let results = results as? [HKQuantitySample] {
            self.bloodGlucose = results
        }
        DispatchQueue.main.async {
            self.tableView.reloadData()
        }
    }
    healthStore.execute(query)

这是我设置表格视图的地方...

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return bloodGlucose.count
  }
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
                let currentCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
                let sugar = bloodGlucose[indexPath.row]
                currentCell.textLabel?.text = "\(sugar)"
                currentCell.detailTextLabel?.text = dateFormatter.string(from: sugar.startDate)
                return currentCell
 }
4

1 回答 1

0

似乎您正在显示HKQuantitySample. 如果您只想显示 的数量HKQuantitySample,为什么不使用它的quantity属性?

currentCell.textLabel?.text = "\(sugar.quantity)"

顺便说一句,你最好将你的声明endDateDate(不是NSDate):

let endDate = Date()
let startDate = Calendar.current.date(byAdding: .day, value: number, to: endDate)
let sampleType = HKSampleType.quantityType(forIdentifier: .bloodGlucose)
let mostRecentPredicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate)

一般来说,非NS类型更适合 Swift。

于 2017-06-27T20:39:20.423 回答