2012-08-22 6 views
0

여기의 질문은 coredata를 사용하는 동안 순서/우선 순위를 유지하기 위해 링크드 리 스트를 만드는 것이 좋은 선택인지 아니면 간단한 var을 사용하여 우선 순위를 숫자로 유지해야하는지에 대한 좋은 선택입니다.CoreData LinkedList?

N 객체의 배열에 새로운 객체가 N/2 위치에 삽입되면 숫자를 유지하면서 N/2 + 1 -> N/2의 객체에 대한 모든 우선 순위 값을 수정해야합니다. 내가 잘못하지 않으면 그 많은 SQL 쿼리 결과.

연결 목록이 있으면 "다음"이라는 해당 엔터티에 자체 관계를 유지할 수 있습니다. N/2 위치에 객체가 삽입 된 경우 1. N/2-1 -> next -> newObj 2. newObj -> 다음 -> N/2 + 1 그러나 여기에는 문제는이 관계를 사용하여 fetchedresults를 정렬 할 수없는 NSFetchedResultsController를 사용하거나 아니면 어쩌면 가능합니까?

위의 두 가지 기술 중 어느 기술이 더 나은지 응답하십시오.

+0

자세히 설명해 주시겠습니까? – manishnath

+0

그래, 어떻게 색인을하지 않고도 NSArray에서 우선 순위를 유지 하시겠습니까 아니면 u가 색인을 업데이 트되는 우선 순위에 얼마나 많은 쿼리가 화재가 있더라도? – manishnath

답변

2

가장 좋은 해결책은 대다수의 순서 관계를 사용하는 것입니다. 이것은 NSOrderedSet을 사용하여 배열과 같은 순서를 유지하지만 세트와 같은 빠른 멤버십 테스트도 지원합니다. 이 기능은 iOS 5.0 또는 Mac OS X 10.7 이상에서만 사용할 수 있습니다.

이전 버전의 iOS를 지원해야하는 경우 주문을위한 추가 속성으로 접근 방식을 선택했습니다. 이렇게하면 가져 오기가 훨씬 쉬워집니다. 연결된 목록 구조를 업데이트하는 것이 더 쉬울 수도 있지만 일반적으로 가져 오기 (데이터 표시)가 훨씬 더 자주 수행되므로이 ​​경우가 더 쉬워야합니다.

주문을 자주 업데이트해야하는 경우 주문 번호 사이에 큰 차이가있을 수 있습니다.

+0

감사합니다 스벤 .. 떠나는 간격이 좋아. 나는 같은 장소를 위해 싸우는 2 개의 목표 사이에서 충돌을 찾을 때까지 나는 모든 나머지 색인을 새롭게 할 필요가없는이 방법을 짐작한다 :) – manishnath