핵심 데이터 관계를 주문해야합니다. 나는 많은 관계가 있지만 극복 할 수없는 문제는 관계형 엔터티를 한 번에 다시 정렬하면 속한 모든 뷰에서 관계형 엔터티를 다시 정렬한다는 것입니다.moveRowAtIndexPath 및 CoreData Relationships
예 : People
은 activity1
에 추가되며 moveRowAtIndexPath
방법을 사용하여 임의로 정렬됩니다. 같은 사람들은 activity2
에 추가되며 activity1
과 동일하게 정렬됩니다. 이걸 어떻게 막을 수 있니?
관련 코드 :
- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
{
NSUInteger fromRow = [fromIndexPath row];
NSUInteger toRow = [toIndexPath row];
id object = [[eventAthletes objectAtIndex:fromRow] retain];
[eventAthletes removeObjectAtIndex:fromRow];
[eventAthletes insertObject:object atIndex:toRow];
int i = 0;
for (object in eventAthletes)
{
[object setValue:[NSNumber numberWithInt:i++] forKey:@"athleteDisplayOrder"];
}
[self saveContext];
[object release];
}
나는 모델을 업데이트하고 저장 키를 사용하지 않음으로써, 나는 새로운 이벤트에 신선한 시작할 수있을 것이라고 속성 athleteDisplayOrder
과도 생각을했다. 거푸집은 없다.
로드 될 때 MC가 뷰로 전달되었으므로 여기서 NSFetchedResultsController를 사용하지 않습니다. viewDidLoad에서 NSMutableArray를 호출합니다. * sortedAthletes = [[NSMutableArray alloc] initWithArray : [event.eventAthletes allObjects]]; \t [sortedAthletes sortUsingDescriptors : sortDescriptors]; \t self.eventAthletes = sortedAthletes; 이 견해에서 관계와 만 협력합니다. 이 단계에서는 이벤트가 존재하며, 선수는 상기 이벤트에 배정되어 최종 사용자에게 선수를 주문할 수있는 권한을 부여하고자합니다. 주문한 운동 선수가 모든 행사에서 그 순서를 지키고 있다는 문제가 있습니다. – Mike
@Mike 이벤트 당 맞춤 주문이 필요한 경우 내 수정을 참조하십시오. – Mundi
나는 더 간단한 방법이 있었으면 좋겠다고 생각했지만 이것은 내가 생각한 것입니다. 도와 주셔서 대단히 감사합니다! – Mike