UIDocument-iOS5.0

  • UIDocumentはiCroudに保存処理を自動的に行う。
  • モデルコントローラ


モデルの初期化

次のメソッドの上書き
  • contentsForType:error:
  • loadFromContents:ofType:error:

ライフサイクル

  • 作成
  • 開く、閉じる
  • 状態変化(エラー、版の相違)
  • iCroudへの追加と削除
  • 削除

iCloudへの保存

  • 所定のURLでNSFileManagerへ渡す
  • NSFilePresenterプロトコル

保存はBGでおきる。

自動保存

  • 状態変化の追跡、取り消し処理は可能


iCroudのファイル構成

  • 特定のアプリケーションに対応して保存する場所がある(コンテナディレクトリ)

ディレクトリの中身

  • サブディレクトリ:Documents ドキュメントファイルを保存する場所

UIDocumentのプロパティ

  • ローカルURL ドキュメントの保存場所:ローカルもしくはiCroud等 initWithFileURL:で初期化時にセット
  • ドキュメント名 ドキュメントの名前、URLを元に決まる。localizedNameを上書きすれば変更可能。
  • ファイルタイプ 拡張子より判断
  • 修正日 
  • 状態 

UIDocumentの扱うドキュメントのデータ形式

  • CoreData UIManagedDocumentで利用できる
  • NSData, NSFileWrapper UIDocumentで使える。NSFileWrapperはテキスト+画像のような複数のものから成り立つ場合に一つのファイルパッケージにして使う。
  • 独自 UIDocumentのメソッドの上書きで使える様になる。
  • ドキュメントが大きいとき
    • UIManagedDocumentを使う。(CoreDataの増分読み込み書き出しを使う)
    • 分割してファイルパッケージにまとめる
    • サブクラスを作って書き込み等のメソッドを増分読み込みに対応されるコードをつくる。

iOSとMacOSの双方で編集する場合の注意

    • rtf形式がiOSでは使えない。
    • 互換性のないクラスUIColor,UIImage,UIBezerPath → CIColorプロパティなどを使って
    • 座標の基点の違い

ドキュメントのタイプ

独自に設定する場合はAdd Document TypeするP22
最終更新:2012年12月11日 14:10