1

後で簡単にアクセスできるように保存したい UIImages の配列があります。私が読んだことから、参照を Core Data に保存し、画像をディスクに保存する必要があります。エンティティに userImages 属性を作成し、それを Transformable に設定しました。画像配列は userImages と呼ばれます。

次のステップは、次のようなことです。

NSFetchRequest * request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Item" inManagedObjectContext:context]];
[request setPredicate:[NSPredicate predicateWithFormat:@"itemId=%@",3]];

item = [[context executeFetchRequest:request error:&error] lastObject];

if (error) {
    NSLog(@"error with request");
}

//Update the object
item.userImages = someArrayOfImageReferences;

error = nil;
if (![context save:&error]) {
    NSLog(@"error");
}

しかし、someArrayOfImageReferences をどのように構築すればよいでしょうか? image1.png、image2.png などの任意の画像名の別の配列を作成する必要がありますか? もっと良い方法があるはずです。

4

1 に答える 1

0

画像のセットは、実際には Core Data の配列ではなく、NSSet によるものです。オブジェクト ポインタを配列から新しい NSSet にコピーするだけで問題ありません。

画像にはすべてファイル名がありますが、使用しないでください。より良い方法は、少なくとも内部で使用するために、その場で名前を生成することです。もちろん、必要に応じてユーザーに名前を表示させておくこともできます。内部名には、オンザフライで生成できる GUID に基づいたもの、または現在のシステム時間に基づいたものを使用します。(ユーザーがシステムの時刻を変更した場合に備えて、既存のファイルを確認し、それに応じて名前を調整してください。)

于 2012-09-07T04:36:38.353 に答える