0

たくさんの画像が入ったiOSアプリを開発しています。これらの画像は、ShowオブジェクトとBandオブジェクトに関連付けられています。私はiOS開発にかなり慣れていません

サーバーでは、ショーとバンドが画像のリストに関連付けられています。現在、次の情報を含む画像を保存しています。

height:integer width:integer imageType:string imageData:binary

最初の質問は:もっとあるべきですか?

次に、CoreDataを使用してShowオブジェクトとBandオブジェクトを永続化します。すぐにメモリが不足するため、画像を永続化したくありません。それらをキャッシュディレクトリに保存します。私の2番目の質問は、ShowオブジェクトとBandオブジェクトが画像をどのように追跡する必要があるかということです。モデルに、ショーやバンドとの関係が非常に多いImageオブジェクトが必要です。ただし、これらのImageオブジェクトには、高さ、幅、imageType、およびキャッシュされた画像があるべき場所へのパスのみが含まれている可能性があります。私の考えでは、キャッシュディレクトリに見つからない場合は、サーバーからimageDataを取得します。

これを行う正しい方法は何ですか?

アップデート

また、キャッシュされたバージョンを取得する前に、HEADを使用してサーバーにpingを実行し、imageDataが更新されているかどうかを確認する予定です。

4

1 に答える 1

1

実際には、Core Dataを使用して画像を直接保存するだけで、ドキュメントをいじる必要はまったくありません。

これは他の場所でも回答されていますが、とにかくここにコードを配置します。

保存する:

NSData *imageData = UIImagePNGRepresentation(yourUIImage);
[newManagedObject setValue:imageData forKey:@"image"];

とロードするには:

NSManagedObject *selectedObject = [[self fetchedResultsController] objectAtIndexPath:indexPath];
UIImage *image = [UIImage imageWithData:[selectedObject valueForKey:@"image"]];
[[newCustomer yourImageView] setImage:image];

データをモデル化する方法は、画像がバンド/ショーとどのような関係になるかによって異なります。

ショーとバンドはそれぞれ複数の画像に関連していますか?ショーに複数のバンドに関連する画像を含めることはできますか?

最終的には、Imageこれらの質問への回答に応じて、バンド/ショーと1対1または1対多の関係を持つコアデータエンティティが必要になる場合があります。また、逆の関係を追加して、たとえば番組を検索するときに、それに関連付けられている画像のセットにもアクセスできるようにすることもできます。

オブジェクト間の関係についてより詳細な情報を提供すると、支援が容易になる場合があります。

于 2012-06-23T22:21:16.940 に答える