2010-11-27 4 views
0

많은 종류의 엔티티가있는 핵심 데이터 앱을 만들고 있습니다. Property 엔티티, Apartment 엔티티, Tenant 엔티티, 그리고 아이폰의 카메라/사진 라이브러리를 사용하여 이미지를 첨부하고 싶습니다.일반 핵심 데이터 "Attachable"상위 클래스

내가 전에 작은 프로젝트에 카메라와 함께 일하지만, 제가 이번에 작업을 수행하고자하는 몇 가지 일반적인 "부착 형"코드를 작성하고 이들 엔티티의 각이있다 (Property, Apartment, 그리고 Tenant) 한 상속 Attachable 클래스에서 모든 필요한 코드를 가져온 것입니다.

나는 이것이 코드 중복을 피하고 the excellent Ruby/Rails Paperclip plugin과 같은 것으로 생각하고 있습니다.

휠을 다시 발명하기 전에, 이미 이런 것이 있는지 이미 알고 싶습니다. 어떤 아이디어?

감사합니다!

답변

1

관리 대상 객체 하위 클래스에서 카메라 또는 UI를 제어하는 ​​코드를 넣고 싶지는 않습니다. 그러면 Modal-View-Controller 디자인 패턴이 깨져서 앱이 복잡해질 수 있습니다. 관리 대상 객체 하위 클래스는 모델링 데이터에만 관심을 가져야합니다.

그러나 관리 대상 하위 클래스에서 Core Data의 영구 저장소 외부에서 데이터 파일을 관리 할 수없는 이유는 없습니다.

이 경우 핵심 데이터가 포함 된 이미지 저장 옵션이 필요합니다. UIImage 객체를 모든 엔티티의 변형 가능한 속성에 직접 저장할 수 있습니다. 그러나 영구 저장소를 엄청나게 만들고 가져 오기 속도를 크게 떨어 뜨릴 수 있습니다. 더 좋은 방법은 경로 속성이 문자열 속성에 저장된 별도의 파일로 이미지를 저장하는 것입니다.

Image 엔티티를 만들고 해당 클래스를 사용자 지정하여 파일을 관리하는 것이 좋습니다. 실제 UIImage 객체를 나타 내기 위해 일시적인 속성을 사용하십시오. 그런 다음 Image 엔터티와 관계가있는 Property, Apartment 및 Tenant에 대한 추상 부모 클래스를 만듭니다. 부동산, 아파트 및 임차인은 모두 image 관계를 상속합니다.

그런 식으로, 어떤 건물, 아파트에 대한 이미지를 설정하거나 것 임차인은 사용

UIImage *displayImage=aProperty.image.imageObject; //object.relationship.attribute 

관계의 다른 측면에 Image 개체가로드하고있는 UIImage를 반환합니다.

키 - 값을 준수해야하므로이 방법으로 처리해야합니다. 이렇게하면 이미지를 설정하거나 제거 할 때마다 코어 데이터가 개체 그래프를 업데이트하여 변경 내용을 반영합니다.