我正在尝试将一些数据保存到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]。
仍有同样的错误
答案 0 :(得分:1)
您遇到HealthKit的已知问题。您可以通过为元数据显式创建NSDictionary而不是Swift字典来解决此问题。
答案 1 :(得分:0)
我已更新到Xcode 7 Beta 3 ...问题解决了! 感谢@allan的帮助