1

これはおそらく素朴な質問ですが、私が望むUIDocumentことをしない場合に時間を無駄にしないように再確認したいと思います。

背景:ユーザーが作成したドキュメントを として保存するための単純なファイル システムを作成したアプリがありますplists。エンコード/デコードがすべて機能しています。私はいくつかのプリミティブ型を使用しており、適切なエンコーダー メソッドでそれを処理しています。Library命名システムがあり、ユーザーが直接アクセスしてはならないドキュメントであるため、plist をディレクトリ内のカスタム ディレクトリに保存します。(必要に応じて、データをドキュメント ディレクトリにエクスポートできます。

私は「自動保存」について考え始め、それから発見しましたUIDocument- かなり素晴らしいですね。

上記を考えると、私は使用できるようUIDocumentですか?保存したのは、NSObject から派生したカスタム クラスの "Project" インスタンスです。これには、カスタム クラス、NSDictionaries などのインスタンスを含む一連の NSMutable 配列が含まれています。 -part-1しかし、自分のデータなどのために機能しないことを発見したくありません.

アップデート:(家で一緒に読んでいる人のために... ;-)これでいくらか進歩しました。 UIDocument ではNSKeyedArchiverなくNSCoder (間違っています - 以下の回答を参照) を使用しますが、エンコード方法の名前は同じであるため、既に持っていたものを簡単に調整できました。すべてのデータをキャプチャしているように見える plist を保存できましたが、すべてを読み戻そうとするまでわかりません。整理していないエラーが発生します。

NSFileCoordinator: 驚くべきサーバー エラーが通知されました。詳細: 接続が無効です

ローカルに保存しているので、iCloudに接続しようとしている理由がまったくわからないので、それほど驚くことではありません。うまくいけば、私はそれをオフにすることができます。

4

1 に答える 1

2

NSKeyedArchiver を使用して UIDocument についてどこで理解できるかわかりません。単純な実装では、ドキュメント コンテンツの NSData 表現を提供するだけで済みます。NSCoder、NSKeyedArchiver、NSPropertyListSerialization、またはカスタム スキームを使用してモデル オブジェクトからそのデータを生成するかどうかは問題ではありません。

それを考えると、あなたが説明したデータモデルで動作しない理由はわかりません。

于 2012-03-31T01:29:54.663 に答える