1

我如何创建一个HKCategorySample?我正在关注文档,但出现错误

Cannot invoke 'init' with an argument list of type '(type: HKCategoryType, value: Int, startDate: NSDate, endDate: NSDate)'

文档似乎表明这些是传递它的正确参数类型,那么它实际上在抱怨什么?

我正在使用的代码是:

let sample = HKCategorySample(
    type: HKCategoryTypeIdentifierSleepAnalysis as HKCategoryType,
    value: HKCategoryValueSleepAnalysis.Asleep as Int,
    startDate: start,
    endDate: end)

其中startend都是NSDates

4

1 回答 1

1

您的代码中有两个问题:

  1. HKCategoryTypeIdentifierSleepAnalysis只是一个标识符String,你必须实例化它 HKObjectType.categoryTypeForIdentifier()
  2. HKCategoryValueSleepAnalysisenum,您不能将其转换为Int. 要从中提取Int,您必须使用.rawValue属性。

尝试:

let sample = HKCategorySample(
    type: HKObjectType.categoryTypeForIdentifier(HKCategoryTypeIdentifierSleepAnalysis),
    value: HKCategoryValueSleepAnalysis.Asleep.rawValue,
    startDate: start,
    endDate: end
)
于 2014-11-12T06:09:30.347 回答