Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS HealthKit入門 #004】HealthKitデータ保存領域へのアクセス許可要求

前回記事でHealthKitに保存するデータの作成方法を書いた。
swift.swift-studying.com

データが作成できたら次は保存に進みたいところであるが、
アプリがHealthKitのデータ保存領域にアクセスするには、
ユーザーにアクセス許可してもらう必要があります。

まずはアクセス許可の取得について書く。


アクセス許可の取得

どの種類のデータについてアクセス許可を取得したいのか決めて、
ユーザーにアクセス許可を要求します。

どの種類とはHealthKitのHKObjectTypeです。

HKHealthStoreを初期化し、

func requestAuthorizationToShareTypes(_ typesToShare: Set<HKSampleType>?, readTypes typesToRead: Set<HKObjectType>?, completion completion: (Bool, NSError?) -> Void)

メソッドを実行するとユーザーにアクセス許可を要求ことができる。

HKHealthStoreとは何か?

HealthKitのデータ保存領域にアクセス手段を提供するクラスです。

メソッドの引数について少し説明
  • typesToShare
    保存したいデータの種類をSet型で指定する。(複数指定も可能)
    データ保存のアクセス許可が必要なければnilでよい。

  • typesToRead
    HealthKitから取得したいデータの種類をSet型で指定する。(複数指定も可能)
    データ取得のアクセス許可が必要なければnilでよい。

サンプルを書いてみる。
// HKHealthStoreの初期化
let healthStore = HKHealthStore()

// アクセス許可を取得したデータの種類(体温)
let bodyTemparatureType = HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierBodyTemperature)!

// アクセス許可の取得要求
healthStore.requestAuthorizationToShareTypes([bodyTemparatureType], readTypes: [bodyTemparatureType]){
    (success, error) in
    
    if success{
        print("アクセス許可取得")
    }
    
}        


実行してみましょう

このソースをアプリで実行すると下記画面が表示されます。 f:id:fjswkun:20150926215806p:plain

スイッチをオンにし、画面右上の許可ボタンを押すと、
許可されて、アプリの画面に戻ります。

おわりに

次こそはデータの保存について調べていく。

参考情報

HealthKit

  • HealthKitについて書いてある書籍は今のところこれしか知らない

iOS 8 Swift Programming Cookbook: Solutions & Examples for iOS Apps

Swift

iOSアプリ開発未経験の人向け
iOSアプリ開発をはじめたとき最初に買った書籍 【アプリ作成未経験の人向け】
Storyboardを使って画面を作成していく。
手順にしたがって操作していくと、ボタンの作成やWebViewの作成などができる。
アプリって、こんな感じで作るんだというのを体験できる。

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】


・わかりやすくていい、と聞いた本
立ち読みした感じだと【アプリ作成未経験の人向け】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】


②を終えたくらいの知識の方向け
・アプリ開発独学中に2冊めに購入した書籍
プログラミング知識はなくても、若干理解するのに時間がかかる程度で、
読み進められるわかりやすさがある。

iPhoneアプリ開発塾

iPhoneアプリ開発塾


③中級者、上級者向け

詳解 Swift

詳解 Swift