Я работаю с приложением iWatch и отслеживаю 4-минутную прогулку для нескольких данных сердечного ритма каждую секунду.
Я получаю данные, и мне нужно сохранить их в локальном файле json.
Я пытаюсь добавить данные в Codable, но получаю только отдельные данные.
Я новичок в Swift.
Ниже необходим обязательный формат.
{ "items" : [
{
"endDate" : "2019-12-11",
"HeartRate" : "82 BPM",
"startDate" : "2019-12-11"
},
{
"endDate" : "2019-12-11",
"HeartRate" : "79 BPM",
"startDate" : "2019-12-11"
} ] }
Ниже приведены мои данные в основном классе.
func workoutBuilder(_ workoutBuilder: HKLiveWorkoutBuilder, didCollectDataOf collectedTypes: Set<HKSampleType>) {
guard let hrType = HKQuantityType.quantityType(forIdentifier: .heartRate),
let distanceType = HKQuantityType.quantityType(forIdentifier: .distanceWalkingRunning) else {
return
}
if collectedTypes.contains(hrType) {
if let hrQuantity = workoutBuilder.statistics(for: hrType)?.mostRecentQuantity() {
// We want to have BPM
let hrUnit = HKUnit(from: "count/min")
let hr = Int(hrQuantity.doubleValue(for: hrUnit))
// print("HR: \(hr)")
self.bpmLabel.setText(String(hr))
let jsonData = HealthItem.init(endDate: formattedDateFromString()!, HeartRate: String(hr), startDate: formattedDateFromString())
print("jsonData \(jsonData)")
}
}
struct codable class
struct HealThInfo: Codable {
let items: [HealthItem]?
}
struct HealthItem: Codable {
let endDate: String?
let HeartRate: String?
let startDate: String?
}
Но, он сохраняет только отдельные данные, а не несколько данных.
jsonData HealthItem (endDate: необязательный («2020-02-04»), HeartRate: необязательный («87»), startDate: необязательный («2020-02-04»))