Swift와 HealthKit로 영양 정보 축적
HealthKit
iOS 8의 HealthKit가 새로 추가되었습니다.고조된 기분은 느껴지지 않지만, 일단 데이터를 저장해두면 나중에 무슨 좋은 일이 생길지... 따라서 iOS 9에 첨가된
HKCorrelationTypeIdentifierFood을 사용해 다양한 영양소를 한곳에 모아'아이템 메뉴'헬스로 활용한다.앱으로 보내기로 했어요.이곳에서 우리가 자랑하는 오징어 옥을 샘플로 사용한다.샘플 코드 및 참조 캡처
 
 주요 등장 Class
HealthKit
HKUnit
유닛
HKQuantity
재다
HKQuantityType
양의 유형
HKQuantitySample
물품.
'물'이라는 단어는 잘 모르지만 우선 목표를 이것으로 삼으세요.
HKUnit, HKQuantity
순서는 앞뒤이고 먼저
HKQunatity의 초기화 방법이다init(unit unit: HKUnit!, doubleValue value: Double)
unit 주어진 단위doubleValue의 값이 양이다.100.0이라는 숫자Double를 단위로 보고하면 바로'100그램'의 양이다.유닛의 초기화에는 여러 가지 방법이 있다
HKUnit.percentUnit()
HKUnit(fromString: "cm")
HKUnit.gramUnitWithMetricPrefix(.Kilo)
두 번째는 문자열로 단위를 표시하는 방법(여기는 센티미터)m/s^2"(가속도|$m/s^2달러)일 수도 있습니다.
세 번째는 읽은 것처럼 그램 단위로.이렇게 하면 킬로그램이다.
let kcalUnit = HKUnit.kilocalorieUnit()
let quantity = HKQuantity(unit: kcalUnit, doubleValue: 347)
HKQuantityType, HKQuantitySample
다음은 양 타입.모두 칼로리라고 하지만 섭취하는 칼로리
HKUnit냐, 운동으로 소모되는 칼로리HKQuantityTypeIdentifierDietaryEnergyConsumed냐, 기초에너지 소모HKQuantityTypeIdentifierActiveEnergyBurned냐, 잘 지정HKQuantityTypeIdentifierBasalEnergyBurned해야 한다.이렇게 해서 마침내 필요한 요소를 통일해 HKQuantity Sample의 실례화를 이뤘다.
let type = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietaryEnergyConsumed)!
let date = NSDate()
let ikatamaEnergySample = HKQuantitySample(type: type, quantity: quantity, startDate: date, endDate: date)
예를 들면 단백질은 이런 거예요.
let gramUnit = HKUnit.gramUnit()
let proteinQuantity = HKQuantity(unit: gramUnit, doubleValue: 18.9)
let proteinType = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierDietaryProtein)!
let ikatamaProteinSample = HKQuantitySample(type: proteinType, quantity: proteinQuantity, startDate: date, endDate: date)
HKCorrelation
코드를 보면 일목요연하다.
var itemSet = Set<HKQuantitySample>() 
itemSet.insert(ikatamaEnergySample)
//// 必要な栄養のサンプルを`insert(_)`していく
let foodType = HKCorrelationType.correlationTypeForIdentifier(HKCorrelationTypeIdentifierFood)!
let ikatama = HKCorrelation(type: foodType, startDate: date, endDate: date, objects: itemSet, metadata: metadata)
HKHealthStore
이후에 나는 상점의 상업성을 검사하여 당신에게 상점을 방문해 달라고 요청할 것입니다.틀이 너에게 폐를 끼칠 것이다.
guard HKHealthStore.isHealthDataAvailable() else { return }
let healthStore = HKHealthStore()
let typeSet: Set<HKSampleType> = [energyType, proteinType]
healthStore.requestAuthorizationToShareTypes(typeSet, readTypes: nil) { success, error -> Void in
  // if request is approved
  healthStore.saveObject(ikatama) { success, error in
    if success { print("DONE!!") }
  }
}
 
 최후
허둥지둥 썼기 때문에 스위프트 같은 말은 할 수 없었지만 레코드 제작사 내
HKQuantityType에서 쓰느라 신나게 썼다.기회가 된다면 엔um+protocol을 쓸 수 있었으면 좋겠어요.감사합니다.
                Reference
이 문제에 관하여(Swift와 HealthKit로 영양 정보 축적), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/OkonomiyakiYuki/items/d52c747368e48bf5df79텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)