首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用HKObserverQuery初始化updateHandler?

如何用HKObserverQuery初始化updateHandler?
EN

Stack Overflow用户
提问于 2016-06-16 12:39:34
回答 1查看 629关注 0票数 0

我正在努力学习Apple HealthKit,我目前的目标是让我的应用程序在后台时观察对某些示例类型的HK查询。我可以用sampletype和谓词初始化一个observerquery:

代码语言:javascript
复制
let query = HKObserverQuery(sampleType: sampleType, predicate: nil) {...}

但是,当我尝试在初始化中使用自定义updateHandler时,XCode引发了一个问题:

代码语言:javascript
复制
func setUpBackgroundDelivery() {

    guard let sampleType = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierBloodGlucose) as HKSampleType! else {
        ...
    }

    self.healthKitStore.enableBackgroundDeliveryForType(sampleType, frequency: .Immediate) { (success, error) in
        ...
    }

    let updateHandler: (HKObserverQuery, HKObserverQueryCompletionHandler, NSError?) -> Void = {
        query, completionHandler, error in
        ...
        NSLog("HealthKit Background Delivery received")
        completionHandler()
    }

    let query = HKObserverQuery(sampleType: sampleType, predicate: nil, updateHandler: updateHandler) {
        query, completionHandler, error in
        ...
        completionHandler()   
    }
    healthKitStore.executeQuery(query)
}

问题是:

. '(sampleType: HKSampleType,谓词:_,updateHandler:(HKObserverQuery,HKObserverQueryCompletionHandler,NSError?) -> Void,(_,_,_) -> ()‘(又名:sampleType’,谓词:_,updateHandler:(HKObserverQuery,() -> (),可选) -> (),( ->,,_) ()‘)是不可转换为’(:,谓词:?,:(,#en25 26),NSError?) '(sampleType: HKSampleType,谓词:可选,updateHandler:(HKObserverQuery,() -> (),可选) -> ()‘),元组有不同数量的元素

EN

回答 1

Stack Overflow用户

发布于 2016-06-17 16:02:48

您不应该同时指定updateHandler和尾随闭包。其中只有一个可以作为初始化程序的update处理程序块参数的参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37859534

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档