LoginSignup
9
6

More than 5 years have passed since last update.

[Swift][iOS]iCloudDocumentsにバックアップ保存

Last updated at Posted at 2018-09-30

概要

iCloudDocumentsにバックアップの仕方を調べる機会がありました。
いくつか参考にさせていただいた記事はありますが、詰まった部分もあったのでまとめておく。

iCloudコンテナ作成

こちらのサイトを参考にしてください。

iCloudカスタムディレクトリの作成

private var containerUrl: URL? {
    let url = FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("ディレクトリ名")
  do {
        try FileManager.default.createDirectory(at: url!, withIntermediateDirectories: true, attributes: nil)
   } catch let error as NSError {
        //エラー処理
  }
    return url
}

iCloudに保存しているデータのダウンロード

FileManager.default.startDownloadingUbiquitousItem(at: (self.containerUrl)!)

iCloud書き込み

// イメージの保存
let fileURL = containerUrl?.appendingPathComponent("sample.jpeg")
let data = UIImageJPEGRepresentation(image!, 1.0)
do {
    try data?.write(to: fileURL!, options: Data.WritingOptions.atomic)
} catch let error as NSError{
    // エラー処理
}

iCloud読み込み

private var fileNames: [String]! = []
// 指定したディレクトリ内のファイル名を全て取得する
fileNames = try FileManager.default.contentsOfDirectory(atPath: (containerUrl?.path)!)
 // ディレクトリから取得したファイル名を利用しデータの取得
let filePath = containerUrl?.appendingPathComponent("\(fileNames[0])")
do {
    let data = try Data(contentsOf: filePath!)
    let image = UIImage(data: data)
} catch let error as NSError {
    // エラー処理
}

参考記事

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6