[3]XcodeでプロジェクトにiCloudを使う設定をする
Xcodeに、iCloudを使う設定をします。
「Capabilities」タブを選択し、「iCloud」のスイッチをONにします。「To enable iCloud, select a Development Team to use for provisioning」というポップアップが表示されるので、開発者の名前を選択して「Choose」ボタンをクリックします。
「iCloud」スイッチがONになり使えるようになります。今回は「Key-value storage」を使うのでチェックします。
[4]アプリを作る
iCloudの「Key-value storage」を使ったアプリ制作の準備ができました。iCloudでデータが保存されるのを確認するため、テキストフィールドを使って、iCloudの文字データを表示したり、入力した文字を保存したりするアプリを作ってみましょう。
1)画面に[TextField]を配置してアプリ画面を作ります。
「Main.storyboard」を選択し、右下のライブラリから[TextField]を1つドラッグ&ドロップして中央に配置します。右下の「|△|」ボタンを押して、「Reset to Suggested Constraints(自動レイアウト設定)」を選択します。
Main.storyboardの仮画面の中央にボタンを配置しただけでは、縦長のiPhone画面で見るとボタンが端に表示されてしまいます。自動レイアウト設定をすることで、縦長の画面でも中央に表示されます。
2)[textView]に名前をつけてコントロールします。
メニューで「View」→「Assitant Editor」→「Show Assistant Editor」を選択して、「アシスタントエディター」を表示し、キーボードのcontrolを押しながら、TextFieldをViewController.swiftへドラッグして、名前を「myTextField」とします。
ViewControll.swiftにコード、
@IBOutlet weak var myTextField: UITextField!
が追加されます。
3)テキストフィールドのソフトキーボードを制御します。
テキストフィールドはタップするとソフトキーボードが現れますが、このとき「Return」キーを押すと、ソフトキーボードを閉じて処理を実行する関数を作ります。
キーボードのcontrolを押しながら[TextField]を右画面のViewController.swiftへドラッグし、「Connection」を「Action」に切り換えます。「Event」を「Did End On Exit」にして、「Name」は、「tapReturn」とします。
4)ViewController.swiftに、プログラムを記述します。
画面が表示されたとき、iCloudに保存されたデータがあったら、テキストフィールドに表示するプログラムを記述します。
記述したプログラムは以下の通りです。
//(中略)
override func viewDidLoad() {
super.viewDidLoad()
// 設定したiCloudのデータにアクセスするオブジェクトを作ります
let vStore = NSUbiquitousKeyValueStore.defaultStore()
// もし"inputText"というキーで保存した文字データがあったら
if let str = vStore.stringForKey("inputText") {
// テキストフィールドに表示する
myTextField.text = str
}
}
//(中略)
次に、ソフトキーボードでReturnキーが押されたときに、テキストフィールドの文字をiCloudに保存するプログラムを記述します。
記述したプログラムは以下の通りです。
//(中略)
@IBAction func tapReturn(sender: AnyObject) {
// 設定したiCloudのデータにアクセスするオブジェクトを作ります
let vStore = NSUbiquitousKeyValueStore.defaultStore()
// もしテキストフィールドに文字が入っていたら
if let str = myTextField.text {
// iCloudに"inputText"というキーで文字をセットして
vStore.setString(str, forKey: "inputText")
// iCloudに保存する
vStore.synchronize()
}
}
//(中略)
[5]実機でテストする
iCloudはシミュレータでは動かないので、iPhoneの実機を接続してテストします。
MacとiPhoneの実機をUSB接続すると、左上のスキームメニューにつないだiPhoneの名前が表示されるます。選択して「Run」ボタンを押すと、アプリが実機にインストールされ起動します。
テキストフィールドをタップするとソフトキーボードが表示されるので、何か文字を入力し、Returnキーを押すと、ソフトキーボードが閉じてiCloudに文字が保存されます。
保存されたか確認してみましょう。「Stop」ボタンを押してアプリを終了します。再び「Run」ボタンを押すと、再びインストールされてアプリが起動し、今度は先ほど入力した文字が表示されるので、iCloudのデータを表示したことがわかります。
iPadなど他のデバイスをつないで「Run」ボタンでインストールすると、同じ文字が表示されます。
◆
今回は、iCloudについて解説しました。iCloudを通してつながることで、iPhoneの作業の続きをiPadでと、デバイスを越えて作業できます。
7回に渡って紹介してきた『Swiftで「つながるiOSアプリ」』の連載はこれで終わりです。iPhoneアプリと外の世界をうまくつなげて、新しいアプリを考えてみてください。