找不到类型的初始化程序
Posted
技术标签:
【中文标题】找不到类型的初始化程序【英文标题】:Cannot find an initializer for type 【发布时间】:2015-08-07 09:29:35 【问题描述】: let endDate = NSDate()
let startDate = NSDate()
let v : Float?
let stepsCount:HKQuantityType = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierStepCount)!
let predicate:NSPredicate = HKQuery.predicateForSamplesWithStartDate(startDate, endDate: endDate, options: .None)
let query = HKQuantitySample(sampleType: stepsCount, predicate: predicate, limit: 1, sortDescriptors: nil, resultsHandler:
(query, results, error) in
if results == nil
print(error)
v = result.first.Quantity
)
healthStore.executeQuery(query)
找不到接受的“HKQuantitySample”类型的初始化程序 类型为 '(sampleType: HKQuantityType, predicate: NSPredicate, 限制: Int, sortDescriptors: nil, resultsHandler: (_, _, _) -> _)'
【问题讨论】:
【参考方案1】:只需将HKQuantitySample
替换为HKSampleQuery
即可。
更多信息请参考THIS教程。
您可以在哪里找到示例代码,例如:
func readMostRecentSample(sampleType:HKSampleType , completion: ((HKSample!, NSError!) -> Void)!)
// 1. Build the Predicate
let past = NSDate.distantPast() as! NSDate
let now = NSDate()
let mostRecentPredicate = HKQuery.predicateForSamplesWithStartDate(past, endDate:now, options: .None)
// 2. Build the sort descriptor to return the samples in descending order
let sortDescriptor = NSSortDescriptor(key:HKSampleSortIdentifierStartDate, ascending: false)
// 3. we want to limit the number of samples returned by the query to just 1 (the most recent)
let limit = 1
// 4. Build samples query
let sampleQuery = HKSampleQuery(sampleType: sampleType, predicate: mostRecentPredicate, limit: limit, sortDescriptors: [sortDescriptor])
(sampleQuery, results, error ) -> Void in
if let queryError = error
completion(nil,error)
return;
// Get the first sample
let mostRecentSample = results.first as? HKQuantitySample
// Execute the completion closure
if completion != nil
completion(mostRecentSample,nil)
// 5. Execute the Query
self.healthKitStore.executeQuery(sampleQuery)
【讨论】:
【参考方案2】:文档没有像您提供的那样谈论任何初始化程序……甚至查看了 Beta 文档,也没有找到任何关于您尝试调用的初始化程序。
请在此处查找可用的现有 HKQuantitySample
初始化程序:
https://developer.apple.com/library/ios/documentation/HealthKit/Reference/HKQuantitySample_Class/
有关创建查询的正确方法,请参阅 Dharmesh Kheni 的答案 :)。
【讨论】:
以上是关于找不到类型的初始化程序的主要内容,如果未能解决你的问题,请参考以下文章
泽西岛:找不到媒体类型 = 应用程序/json、类型 = 类 org.codehaus.jackson.node.ObjectNode 的 MessageBodyWriter?
严重:找不到媒体类型 = 应用程序/json、类型 = 类 com.jersey.jaxb.Todo、通用类型 = 类 com.jersey.jaxb.Todo 的 MessageBodyWriter
初始化类路径时出错:找不到与 services.gradle.org 匹配的主题备用 DNS 名称。 -> 运行 grails 3.0.1 应用程序时