4

私はドキュメントベースのアプリを持っています(それぞれが独自のコアデータ永続ストアを持つ複数のドキュメント)。使っUIManagedDocumentて開発しています。

各ドキュメントは図面であり、各図面のプレビュー ( ) を保存できるようにしたいと考えていますUIImage

すべてのプレビューで scrollView を表示したいので、プレビューをデータベース内に配置するべきではないと思いUIManagedDocumentます。

いくつか質問があります。

  • パラメータ「absoluteURL」はどのような用途に使用され additionalContentForURL:error:ますか? リンクした例では使用されていません。

  • ドキュメントを開かずにプレビューを取得するにはどうすればよいですか? 現在、私はこれをやっています:

.

NSString* docName = [[[DocumentStore sharedStore] documentsList] 
                                    objectAtIndex:indexPath.row];

NSString* dataDirectory = [FileUtils privateDataDirectory];
NSString *dataPath = [dataDirectory stringByAppendingPathComponent:docName];
NSString *imagePath = [dataPath 
             stringByAppendingPathComponent:@"AdditionalContent/thumb.png"];

UIImage * preview = [UIImage imageWithContentsOfFile:imagePath];

...しかし、これが最善の方法であるかどうかはわかりません。

4

1 に答える 1

0
  1. absoluteURLパラメーターはadditionalContentForURL:error:、追加コンテンツが書き込まれる絶対 URL を示します。

    ほとんどのユース ケースでは、このデータがどこに書き込まれるかを実際に知る必要はないため、これは特に必要なパラメータではありませんが、グローバル コンテンツ管理システムとは独立した、あいまいなユース ケースでは識別子として役立つ場合があります。ドキュメント (ただし、これはあまり構造的ではないでしょう)

  2. ドキュメントのプレビューを取得するために現在使用している方法は、セーフガードを実装して、プレビュー リソースが期待するパスに存在しない場合にアプリがクラッシュしたり、未定義の動作を示したりしない限り、問題ありません。どんな理由でも。

    プレビューを取得するもう 1 つの方法は、すべてのドキュメントをロードして初期化しreadAdditionalContentFromURL:error:、ドキュメント クラスに実装してプレビューを読み取ってプロパティに配置し、そのプロパティの値を取得してそれをプレビューとして使用することです。ただし、これにはプレビューを取得するためだけにすべてのドキュメントをメモリにロードする必要があるため、パフォーマンスに深刻な影響を与えるため、これを行うことはお勧めしません。

で追加コンテンツを処理する方法に関する一般的なガイドについては、この質問に対するこの回答UIManagedDocument参照してください。

于 2013-05-11T06:11:49.360 に答える