试图保存元数据 - HealthKit

Trying to save metadata - HealthKit

我正在尝试将一些数据保存到 HealthKit。为每个项目发送一个 UUID。它是一个转换成字符串的 NSUUID。

hk_acceptsMetadataValue:]: unrecognized selector sent to

我不明白我做错了什么。有什么想法吗?

    // Save new item to the Health App
    func saveSample(amount:Double, date:NSDate, uuid: String ) {

        // Create metadata
        let metadata : NSDictionary = [HKMetadataKeyExternalUUID : uuid]

        // Create a Sample
        let unit = HKUnit.literUnitWithMetricPrefix(.Milli)
        let type = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietaryWater)
        let quantity = HKQuantity(unit: unit, doubleValue: amount)
        let sample = HKQuantitySample(type: type!, quantity: quantity,
 startDate: date, endDate: date, metadata:metadata as! [String : AnyObject])

        // Save the Sample in the store
        healthKitStore.saveObject(sample, withCompletion: { (success, error) -> Void in
            if( error != nil ) {
                print("Error saving Sample: \(error!.localizedDescription)")
            } else {
                print("Sample saved successfully!")
            }
        })
    }

因为元数据应该是字符串Xcode建议我加为! [String : AnyObject] 在我创建示例时在变量元数据之后。

仍然出现同样的错误

您遇到了 HealthKit 的一个已知问题。您可以通过为您的元数据显式创建 NSDictionary 而不是 Swift 字典来解决该错误。