Pep's Diary

いろんなことを共有していきたいと思います。たまに持論を言います

【swift3】userDefautlsを使ってwidgetとアプリ間のデータの受け渡しの方法

userDefaultを使うには、AppGroupsというものを使う必要があります。

【手順1】Apple Member Centerで登録する

まずは、Apple Member Centerに行ってログインをして、左にある、Certificated,IDs &Profilesにいく

f:id:ghosthug:20170311191657p:plain

 

次にAppGroup

f:id:ghosthug:20170311192537p:plain

 

右上の+ボタンを押して

 

f:id:ghosthug:20170311192548p:plain

 

 

次に、App Groupの登録。このDescriptionはなんでもいいんじゃないかな。

下のIdentiferのところは、group.co.jp."自分のアプリ名"みたいな感じにするのがいいと思う。

できたら、continueを押して、サイトはもう使わないので閉じちゃおう。

f:id:ghosthug:20170311193805p:plain

【手順2】AppGroupをOnにする

プロジェクトファイルのCapabilitiesを選択する。

AppGroupをOnにする

f:id:ghosthug:20170311194138p:plain

f:id:ghosthug:20170311194157p:plain

 

【手順3】 UserDefaults.init(suiteName: "group.co.jp.test") を設定する

f:id:ghosthug:20170311195255p:plain

あとは、上のように、userDefaultsを生成するときに、

let userDefaults = UserDefaults.standard

の代わりに、

  var userDefaults = UserDefaults.init(suiteName: "group.co.jp.test")

WidgetのViewControllerの中と、使いたいアプリのビューコントローラーに書けばいける。

・注意点。Optional型になってしまうので、userDefautls?.set(〜

のように、?を入れる。

 

まとめ

思ってた以上にややこしかったけど、ぜひ参考にしてみてください