谓词中的 HKQueryOptions

Posted

技术标签:

【中文标题】谓词中的 HKQueryOptions【英文标题】:HKQueryOptions in predicate 【发布时间】:2017-06-19 21:39:30 【问题描述】:

我正在尝试使用谓词从 HealthKit 获取过去 30 天的数据。许多在线教程使用.None 作为他们的HKQueryOption,由于我不熟悉HKQueryOptions,我想知道是否有其他人知道在这种情况下可以用什么代替.None。目前,我已将.None 作为HKQueryOptions 输入,但这会导致我的错误。 'None' is unavailable: use [] to construct an empty option set 当我输入 [] 并打印 results 时,它会返回为 []

这是我声明谓词的查询函数

let sampleType = HKSampleType.quantityType(forIdentifier: HKQuantityTypeIdentifier.bloodGlucose)
        let mostRecentPredicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options:.None)
        let query = HKSampleQuery(sampleType: sampleType!, predicate: mostRecentPredicate, limit: 35, sortDescriptors: nil)  (query, results, error) in

【问题讨论】:

请在您的问题中添加错误 我添加了错误以及在那之后我尝试过的@DatNguyen 我不是这方面的专家,但是当您使用[]时,没有看到错误,并返回[],这意味着:1)查询格式正确; 2)空结果意味着您的查询没有匹配的结果。为什么你得到空结果?您的 HealthKit 中可能没有过去 30 天内的数据。也许根本没有数据。你需要自己解决这个问题:) 【参考方案1】:

尝试使用空集文字[] 而不是.None

let mostRecentPredicate = HKQuery.predicateForSamples(withStart: startDate, end:endDate, options:[])

【讨论】:

当我尝试这个并打印我的查询结果时,它返回为[]

以上是关于谓词中的 HKQueryOptions的主要内容,如果未能解决你的问题,请参考以下文章

Prolog 中的谓词控制

Core Data fetch 中的谓词返回的结果与数组上的相同谓词不同

Prolog 中的子列表谓词

谓词中的 HKQueryOptions

核心数据:谓词中的对象

核心数据的 FetchResults 中的谓词无效