2011-08-01 2 views
0

아이폰 카메라에서 찍은 사진을 핵심 데이터에 저장하려고합니다.코어 데이터에 UIImage 저장하기. NSValueTransformers의 문제

나는 UIImage를 카메라에서 가져 왔습니다. 그 후에, 내가 뭘해야할지 모르겠다.

각 그림은 질문 엔터티와 관련이 있습니다. 이제 질문 엔티티에는 이미지 필드가 없습니다. 이미지 엔티티와 관계가 있습니다. 이것은 각 질문마다 많은 UIImages가있을 수 있습니다.

그래서 질문 항목을 만들었습니다. 이제 UIImage를 핵심 데이터로 이미지 엔티티에 저장하는 방법과 질문 엔티티에 어떻게 참여합니까? Image 엔티티를 만들어야합니까? ImageToDataTransformer를 만들었지 만, 핵심 데이터 나 저를 누가 호출하는지 모르겠습니다. 내 xcdatamodel 있음, 나는 이미지 엔터티가 있습니다. 거기에 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

관련 문제