2011-08-01 10 views
0

iphoneカメラから撮影した写真をコアデータに保存しようとしています。コアデータにUIImageを保存する。 NSValueTransformersの問題

私はカメラから撮影したUIImageを持っています。それから、私は何をすべきか分からない。

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

質問エンティティを作成しました。今、UIImageをコアエンティティデータにImageエンティティに保存するにはどうすればいいですか?質問エンティティにどのように参加させるのですか? Imageエンティティを作成する必要はありますか?私は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; 

答えて

1

私はあなたがQuestionImageエンティティ(または類似した名前の何かを)作りを提案し、それをパスという名前の単一の文字列の属性を与えるだろう。このパスは、以前にイメージを書き出した場所をディスクに保存します。ドキュメントフォルダにイメージを置くと、キャッシュダンプでクリアされません。あなたのQuestionImageエンティティ(または名前を付けて)の実装では、prepareForDeletionを実装し、ディスクからイメージを削除して、参照されていないイメージがぶら下がっていないことを確認できます。

コアデータにバイナリデータを格納するのは面倒であり、可能であれば避けるべきです。

+0

ありがとうございました! – user798719

関連する問題