2015-07-07 2 views
0

Я пытаюсь сохранить некоторые данные в HealthKit. Отправка UUID каждому элементу. Это NSUUID, преобразованный в строку.Пытается сохранить метаданные - HealthKit

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] после метаданных переменных при создании образца.

Тем не менее получил ту же ошибку

ответ

1

Вы столкнулись с известной проблемой с HealthKit. Вы можете обойти ошибку, явно создав NSDictionary для ваших метаданных вместо словаря Swift.

+0

Сейчас меня нет дома ... но я попробую, когда вернусь. Так должно быть так? let metadata: NSDictionary = [HKMetadataKeyExternalUUID: uuid] – pjc90

0

Я обновил версию Xcode 7 Beta 3 ... проблема решена! Спасибо за помощь @allan

Смежные вопросы