Xcode 快速错误';表达式类型';香港主播主题查询';没有更多的上下文,它是模糊的
我在healthkit代码中得到一个错误“表达式类型'HKAnchoredObjectQuery'不明确,没有更多内容”,行“let heartRateQuery=HKAnchoredObjectQuery(类型:quantityType,谓词:nil,锚点:锚点,限制:Int(HKObjectQueryOnlimit)){(查询,sampleObjects,deletedObjects,newAnchor,error)->in无效” 代码是从一个示例项目复制粘贴到我的项目中的,该项目在这一行上运行时没有错误,现在它在我的项目中出现了这个错误 守则:Xcode 快速错误';表达式类型';香港主播主题查询';没有更多的上下文,它是模糊的,xcode,debugging,healthkit,Xcode,Debugging,Healthkit,我在healthkit代码中得到一个错误“表达式类型'HKAnchoredObjectQuery'不明确,没有更多内容”,行“let heartRateQuery=HKAnchoredObjectQuery(类型:quantityType,谓词:nil,锚点:锚点,限制:Int(HKObjectQueryOnlimit)){(查询,sampleObjects,deletedObjects,newAnchor,error)->in无效” 代码是从一个示例项目复制粘贴到我的项目中的,该项目在这一行上
func createHeartRateStreamingQuery(workoutStartDate: NSDate) -> HKQuery? {
// adding predicate will not work
//let predicate = HKQuery.predicateForSamplesWithStartDate(workoutStartDate, endDate: nil, options: HKQueryOptions.None)
guard let quantityType = HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeartRate) else { return nil }
let heartRateQuery = HKAnchoredObjectQuery(type: quantityType, predicate: nil, anchor: anchor, limit: Int(HKObjectQueryNoLimit)) { (query, sampleObjects, deletedObjects, newAnchor, error) -> Void in
guard let newAnchor = newAnchor else {return}
self.anchor = newAnchor
self.updateHeartRate(sampleObjects)
这一条让我抓狂,我遇到了同样的问题。我想如果您将heartRateQuery初始化行更改为这一行,它就会工作:
let heartRateQuery = HKAnchoredObjectQuery(type: quantityType, predicate: nil, anchor: anchor, limit: Int(HKObjectQueryNoLimit), resultsHandler: { (query, sampleObjects, deletedObjects, newAnchor, error) in
//Do anchor code here
guard let newAnchor = newAnchor else {return}
self.anchor = newAnchor
self.updateHeartRate(sampleObjects)
})
他们删除了限制后的括号,并为定义结果的闭包使用了命名参数(resultsHandler)。您也不再需要“->Void”代码。顺便说一句,这适用于Swift 3
该错误具有误导性,因为它似乎无法确定类。在我的情况下,因为我的查询是一个初始化为nil的属性,因此是可选的,所以我假设这就是问题所在。真正的问题是,它不明确,因为构造函数不正确,并且因为它不正确,所以无法确定返回的对象应该是什么是
如果它有助于进一步,这是我的一些代码:
self.acQuery = HKAnchoredObjectQuery(type: sampleType,
predicate: pred,
anchor: self.acAnchor,
limit: Int(HKObjectQueryNoLimit),
resultsHandler: { (query, newSamples, deletedSamples, newAnchor, error) in
self.updateHeartRates(newSamples: newSamples, deletedSamples: deletedSamples, newAnchor: newAnchor, error: error);
})
祝你好运!这一条让我抓狂,我遇到了同样的问题。我想如果你将heartRateQuery初始化行更改为这一行,它会起作用:
let heartRateQuery = HKAnchoredObjectQuery(type: quantityType, predicate: nil, anchor: anchor, limit: Int(HKObjectQueryNoLimit), resultsHandler: { (query, sampleObjects, deletedObjects, newAnchor, error) in
//Do anchor code here
guard let newAnchor = newAnchor else {return}
self.anchor = newAnchor
self.updateHeartRate(sampleObjects)
})
他们删除了限制后的括号,并为定义结果的闭包使用了命名参数(resultsHandler)。您也不再需要“->Void”代码。顺便说一句,这适用于Swift 3
该错误具有误导性,因为它似乎无法确定类。在我的情况下,因为我的查询是一个初始化为nil的属性,因此是可选的,所以我假设这就是问题所在。真正的问题是,它不明确,因为构造函数不正确,并且因为它不正确,所以无法确定返回的对象应该是什么是
如果它有助于进一步,这是我的一些代码:
self.acQuery = HKAnchoredObjectQuery(type: sampleType,
predicate: pred,
anchor: self.acAnchor,
limit: Int(HKObjectQueryNoLimit),
resultsHandler: { (query, newSamples, deletedSamples, newAnchor, error) in
self.updateHeartRates(newSamples: newSamples, deletedSamples: deletedSamples, newAnchor: newAnchor, error: error);
})
祝你好运!Hi!你找到这个问题的解决方案了吗?Hi@Philip感谢你的写作。目前还没有解决方案。Hi!你找到这个问题的解决方案了吗?Hi@Philip感谢你的写作。目前还没有解决方案。