0

iPhoneのカメラから撮った写真をコアデータに保存しようとしています。

UIImageをカメラから取得しました。その後、どうしたらいいのかわからない。

各写真は質問エンティティに関連付けられています。現在、質問エンティティには画像フィールドがありません。Imageエンティティとの関係があります。これは、各質問に多くのUIImageを関連付けることができるようにするためです。

そこで、質問エンティティを作成しました。UIImageをコアデータのImageエンティティに保存するにはどうすればよいですか?また、UIImageを質問エンティティに結合するにはどうすればよいですか?画像エンティティを作成する必要がありますか?ImageToDataTransformerを作成しましたが、誰がそれを呼び出しているのかわかりません。コアデータですか、それとも私ですか。xcdatamodelには、Imageエンティティがあります。そこでImageToDataTransformerを入れました。

UIImageにURLを保存する必要があることは承知していますが、画像の保存方法を理解したいと思います。それは私にはちょっと混乱しているようです。

ありがとう

Question *question = [NSEntityDescription insertNewObjectForEntityForName:@"Question" inManagedObjectContext:managedObjectContext];
question.date = [NSDate date];

ImageToDataTransformer *transformer = [[ImageToDataTransformer alloc]init];
NSData *imageData = [transformer transformedValue:mm];//mm is an id, but it is the UIImage saved from the camera.
question.image = imageData;
4

1 に答える 1

1

QuestionImageエンティティ(または同様の名前のエンティティ)を作成し、pathという名前の単一の文字列属性を指定することをお勧めします。このパスは、以前に画像を書き出した場所をディスク上に保存します。画像をドキュメントフォルダに配置すると、キャッシュダンプで画像がクリアされないようになります。QuestionImageエンティティ(または名前を付けたもの)の実装では、prepareForDeletionを実装し、ディスクから画像を削除して、参照されていない画像がぶら下がっていないことを確認できます。

バイナリデータをCoreDataに保存するのは面倒な場合があるため、可能な限り避ける必要があります。

于 2011-08-01T20:36:28.810 に答える