【ISSUE】NSFileManagerでAPP保存領域のデータを操作する
2024年12月23日 17:28
##はじめに
アプリを作成していく上で追加データとかを保存する領域がアプリごとに振り当てられているのでそこにデータを保存してみる。
##ディレクトリ構成
MyApp.app/
┠ Document/
│ ┗ Inbox/
┠ Library/
│ ┠ Caches/
│ ┗ Preferenses/
┗ tmp/
##ディレクトリ別アクセス権
ディレクトリ | 読み込み | 書き込み | iTunesによるバックアップ | 備考 |
---|---|---|---|---|
MyApp.app | × | O | × | |
Document | O | O | O | iTunes経由で閲覧可能 |
Inbox | O | △ | O | 書き込みはできないが削除は可能 |
Library | O | O | △ | Cacheはバックアップされない |
Cache | O | O | × | システムによる自動削除あり |
tmp | O | O | × | システムに自動削除されない |
##フォルダのチェック・作成
/Document以下にフォルダを作成。フォルダがすでにある場合は作成しないようにしてある。
※/Document以外にもいろいろなフォルダに書き込むことができるので以下を参照してみてください
Qiita:: 今こそ復習したい、iOSアプリのディレクトリ構成
http://qiita.com/tototti/items/8646405f47cc56a59722
Apple:: File System Programming Guide
File System Programming Guide: File System Basics
fileManager.fileExistsAtPath(path, isDirectory: &isDir)
でフォルダの有無を確認しtrue
かfalse
の結果をisDir
に格納します。
isDir
がfalse
であれば/Document
もしくは/Library
ディレクトリにimages
フォルダを作成します。
##ファイルの書き込み
try! fileObject!.writeToFile("\(path)/\(fileName)", atomically: true, encoding: NSUTF8StringEncoding)
を実行したと同時に選択したpath
に"hogehoge"と入力された"tes1.txt"というテキストファイルが生成されます。
##ファイルの移動・名前変更
これを実行することで/path/tes1.txt
--> /path/tes.txt
に変更されます。
##ファイルの削除
##ファイルのコピー
##ファイルの上書き
##注意
ユーザ生成のデータではないファイルや、キャッシュデータなどは置かないように。
どうやら、Appleのガイドラインに違反するらしく申請してもリジェクトされます。
##おわり
CoreDataとかでデータを保存するよりも、うんと楽になりそうです。
便利なライブラリとかextensionも紹介していく予定なのでおたのしみに
[cv:issue_marketplace_engineer]
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。