iOS

iOS におけるデータファイルの格納について

ファイルの置き場所について (/Documents, /tmp, /Library/Cache)

iOS Storage Guideline https://developer.apple.com/icloud/documentation/data-storage/index.html

  • ユーザが残したいファイルは /Documents に置く。永続的に存在し続け、iCloud にもバックアップされる。
  • 一時的なファイルは /tmp におく。自分で消さない限り永続的に存在し続けるが、iCloudにはバックアップされない。
  • 自動的に消されてもよいデータは /Library/Caches におく。勝手に消されることがあるし、iCloudにはバックアップされない。

ファイル操作 NSFileManager?

let manager = NSFileManager
manager.copyItemAtPath(srcPath, toPath: toPath, error: nil)  // コピーする
manager.moveItemAtPath(srcPath, toPath: toPath, error: nil)  // 移動する
manager.removeItemAtPath(filePath, error: nil)               // 削除する
var flag:Bool = manager.fileExistsAtPath(path)              // ファイルの存在をチェックする
var isDir: ObjCBool = false
flag = manager.fileExistsAtPath(path,isDirectory: &isDir)         // isDirはディレクトリかどうか
if (flag && Bool(isDir)) {
  ...
}
manager.createDirectoryAtPath(path, withIntermediateDirectories: true, attributes: nil)  // ディレクトリの作成

アプリケーション固有ストレージにあるファイルの削除

let fileName: String = ...

let homePath: String = NSHomeDirector()
let docPath: String = homePath.stringByAppendingPathComponent("Documents")
let filePath: String = docPath + "/" + fileName;
let manager: NSFileManager = NSFileManager.defaultManager()
do {
  try manager.removeItemAtPath(filePath)
} catch _ {
  /* エラー処理 */
}

指定したディレクトリ下の全てのファイルにを操作する

var files: [String] = []
let homePath: String = NSHomeDirector()
let docPath: String = homePath + "Documents"
let manager: NSFileManager = NSFileManager.defaultManager()
do {
  let paths = try manager.contentsOfDirectoryAtPath(homePath)
  for path in paths {
    print("path = \(path)"
  }
  ...
} catch let error as NSError {
  print("error \(error)")
} catch _ {
  print("error???")
}

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-06-28 (火) 08:12:25 (508d)