Swift2 - HKSampleQuery

Posted

技术标签:

【中文标题】Swift2 - HKSampleQuery【英文标题】: 【发布时间】:2015-06-27 20:36:06 【问题描述】:
let hkSampleType:HKSampleType = HKSampleType.correlationTypeForIdentifier(HKCorrelationTypeIdentifierFood)!
let query = HKSampleQuery(sampleType: hkSampleType, predicate: predicate, limit: 80, sortDescriptors: nil, resultsHandler:  (query:HKSampleQuery, results:[HKSample]!, error:NSError!) -> Void in
    //code
)

就是这样,但我收到一个错误:Cannot find an initializer for type 'HKSampleQuery' that accepts an argument list of type '(sampleType: HKSampleType, predicate: NSPredicate, limit: Int, sortDescriptors: nil, resultsHandler: (HKSampleQuery, [HKSample]!, NSError!) -> Void)'

正确的语法如何?

【问题讨论】:

【参考方案1】:

我不是 Swift 或 HealthKit 方面的专家,但它可以在 Xcode 7 中编译:

let hkSampleType:HKSampleType = HKSampleType.correlationTypeForIdentifier(HKCorrelationTypeIdentifierFood)!
let query = HKSampleQuery(sampleType: hkSampleType, predicate: nil, limit: 80, sortDescriptors: nil, resultsHandler:  (query:HKSampleQuery, results:[HKSample]?, error:NSError?) -> Void in
    //code
)

在闭包中,resultserrorios 9 中是可选的。您将它们声明为未包装。

我不确定的一件事是,您能否将HKSampleQuery 用于HKCorrelation。以下是HKCorrelationQuery 的正确声明,以备不时之需:

let corralationType = HKCorrelationType.correlationTypeForIdentifier(HKCorrelationTypeIdentifierFood)!
let query = HKCorrelationQuery(type: corralationType, predicate: nil, samplePredicates: nil)  (query: HKCorrelationQuery, results: [HKCorrelation]?, error: NSError?) -> Void in


【讨论】:

以上是关于Swift2 - HKSampleQuery的主要内容,如果未能解决你的问题,请参考以下文章

Swift2.0 Multipeer Connectivity 无法连接

NSFetchRequest 上的 Swift2.0 CoreData 问题

swift2.0中文版教程

Swift2 - HKSampleQuery

Swift2 - HKSampleQuery

swift2:调用中的额外参数“错误”