2010-07-07 3 views
1

코어 데이터의 배열에 FeedFolder의 두 가지 유형의 개체를 저장해야합니다. 예를 들어 :코어 데이터에 혼합 배열을 저장하는 방법

Array 
    Feed 
    Feed 
    Folder 
    Feed 
    Folder 
    Folder 
    …etc... 

나는 약 BWOrderedManagedObject 코어 데이터에 순서대로 객체를 저장하기위한 알고 있지만 나는 항목이 특정 순서에 있기 때문에 (배열, 혼합 할 필요가 혼합 된 개체를 저장하는 방법을 잘 모르겠어요). 이상적으로는 두 개의 엔티티를 가리키는 관계가 있지만 분명히 불가능합니다.

내가 볼 수있는 유일한 해결책은 배열을 Transformable 속성으로 만드는 것입니다. 그러나 배열에 저장된 객체는 어떻습니까? 나 자신을 모두 관리해야합니까, 아니면 여전히 Core Data에서 관리합니까? 여기

답변

3

내가 그것을 한 적이 방법은 다음과 같습니다

alt text http://gallery.me.com/davedelong/100084/Screen%20shot%202010-07-06%20at%207.22.10%20PM/web.png?ver=12784658050001

AbstractListItem 주문 속성과 항목의 (단일) 부모를 나타내는 Folder에 관계를 가지고있는 추상적 인 실체이다.

FolderAbstractListItems (그래서 하나 Folders 또는 Feeds를) 것을 원하는대로 폴더가 많은 아이를 가질 수 있다는 것을 의미 AbstractListItem에 일대 다 관계를 가지고 AbstractListItem의 구체적인 아이입니다.

FeedsAbstractListItem (즉, 주문과 부모가 있으며 Folder의 자녀가 될 수 있음)을 상속 받는다는 점을 제외하면 특별한 것은 아닙니다. 폴더를 일단

그래서, 당신은 같은 일을 순서대로 모든 자식을 얻을 수 있습니다 : 최상위 항목을 얻으려면

NSArray * orderedChildren = [[aFolder children] sortedArrayUsingDescriptors:[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"order" ascending:YES]]]; 

을, 당신은 모든 fetch AbstractListItem을 찾고 실행할 것 개체는 parent = nil입니다.

관련 문제