所以我有我的ViewController代码中的一些错误和错误在我的应用程序。首先,在我行:startDate,endDate,并添加文本标签在ViewController
let predicate = HKQuery.predicateForSamplesWithStartDate(startDate,endDate: endDate ,options: .None)
我得到以下错误:use of unresolved identifier 'endDate'
这很奇怪。是因为我没有把它们变成NSDate对象吗?我会怎么做呢?
至于我的第二个问题,它不完全是一个错误,我只是不知道该怎么做。我已将我的标签从故事板连接到我的视图控制器。我想获取我收集的数据,只需在标签的屏幕上打印即可。我知道如何在大多数情况下做到这一点,但我失去了在我目前的配置中如何做到这一点。我不希望用户按下按钮或任何东西,我只是希望它自动默认显示...任何帮助非常感谢!
我已经包括了我下面的所有代码:
import UIKit
import HealthKit
class ViewController: UIViewController {
@IBOutlet weak var displayData: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// create store
let healthStore = HKHealthStore()
// create an object type to request an authorization for a specific category, here is SleepAnalysis
if let sleepType = HKObjectType.categoryTypeForIdentifier(HKCategoryTypeIdentifierSleepAnalysis) {
let setType = Set<HKSampleType>(arrayLiteral: sleepType)
healthStore.requestAuthorizationToShareTypes(setType, readTypes: setType, completion: { (success, error) -> Void in
// here is your code
})
}
if let sleepType = HKObjectType.categoryTypeForIdentifier(HKCategoryTypeIdentifierSleepAnalysis) {
// 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
let query = HKSampleQuery(sampleType: sleepType, predicate: predicate, limit: 30, sortDescriptors: [sortDescriptor]) { (query, tmpResult, error) -> Void in
感谢真棒的答案!我会在哪里实施这个代码?我试着在我的第二条if语句之后直接添加它,但Xcode向我抛出错误,指出sleepType,predicate和sortDescriptor使用了未解析的标识符。我很确定这是因为我放置代码的位置超出了范围,但我不确定我会把它放在哪里。 –
用该代码替换“let query ...”行,它应该可以工作。快速浏览似乎表明所有变量都在范围内。 –