试图保存元数据 - HealthKit

时间:2015-07-07 07:15:12

标签: ios swift health-kit hkhealthstore

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

  

hk_acceptsMetadataValue:]:发送到

的无法识别的选择器

我不知道我做错了什么。有什么想法吗?

    // 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]。

仍有同样的错误

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

我已更新到Xcode 7 Beta 3 ...问题解决了! 感谢@allan的帮助