2012-04-14 2 views
0

저는 Core Data를 사용하기 시작했습니다. 저는 제 경우에 그것이 어떻게 작동 하는지를 확실하게 이해하려고 노력하고 있습니다. 저는 사용자가 키워드와 각 사진과 관련된 몇 가지 다른 속성을 기반으로 결과를 필터링 할 수있게 해주는 iPad 포토 앨범 앱을 만들고 있습니다. 특성은 오리엔테이션과 같은 기본 요소이거나 색상인지 여부입니다. 키워드는 사용자가 선택해야하는 정의 된 값 집합을 기반으로합니다. ,
사진 (ID, 제목, 내림차순, 파일 경로)
키워드 (ID :
엔티티 (속성) :CoreData - 많은 관계

여기에 내가 코어 데이터 지금까지의 모델이 무엇인지의 대략적인 개요입니다 이름)

사진에 여러 개의 키워드가 연관 될 수 있으므로 '사진'에서 '키워드'의 대상으로 관계를 만들고 많은 관계로 만드나요? 그게 정확하고/미친/완전히 틀렸어? 그 관계에 대한 레코드를 추가/가져 오는 방법은 무엇입니까?

답변

1

정확합니다. 이것에 접근하는 방법은 여러 가지가 있지만, 가장 직접적인 방법은 NSManagedObject 서브 클래스를 생성하는 것입니다 (Editor-> Create NSManagedObject Subclass ...). 이러한 사진 엔티티를 채울 때 키워드 관계는 키워드라는 속성에 채워집니다.

3

키워드가 정의되어 있고 사용자가 정의 된 목록에서 키워드를 선택할 수있는 경우 엔티티 키워드를 사용하지 않았을 것입니다. 팁은 항상 단수 이름 (사진, 키워드)을 사용하십시오. plist에 키워드가 있고 사용자가 몇 가지를 선택하면 쉼표로 구분 된 문자열을 만들어 사진에 속성으로 저장할 수 있습니다. Joseph이 언급 한 것처럼 NSManagedObject를 하위 클래스로 만들고 문자열 (키워드)을받는 메서드를 추가하고 해당 키워드가 Photo 속성의 쉼표로 구분 된 키워드 값의 일부인지 나타내는 BOOL을 반환합니다.