J'ai eu un problème similaire et j'ai cherché mais je n'ai rien trouvé. En effet, j'ai mal envisagé la relation.
L'application arrange un tas de Items
sur un Board
en séquence avec des répétitions.
EX. Faire A, Faire B, Faire C, Faire A à nouveau, Faire D
J'ai créé une bonne vieille table de jonction avec le fichier Item
, Board
et la position sur le tableau est appelée BoardItemPositon
.
De la Board
vous pouvez masquer tout le désordre de la table de jonction et obtenir et définir un tableau.
@implementation Board
@dynamic boardItems;
- (void)setItems:(NSArray *)items{
//the ordered set of links
NSMutableOrderedSet *boardItemSet = [NSMutableOrderedSet new];
int i = 1;
for (Item *item in items) {
BoardItemPosition *boardItemPosition = (BoardItemPosition *)[NSEntityDescription insertNewObjectForEntityForName:@"BoardItemPosition"
inManagedObjectContext:[self managedObjectContext]];
NSNumber *num = [NSNumber numberWithInt:i++];
[boardItemPosition setItemPosition:num];
[boardItemPosition setItem:item];
[boardItemSet addObject:boardItemPosition];
}
//delete the old links
for (BoardItemPosition *boardItemPosition in [self boardItems]) {
[self.managedObjectContext deleteObject:[self.managedObjectContext objectWithID:boardItemPosition.objectID]];
}
//set the new links
[self setBoardItems:boardItemSet];
}
- (NSArray *)items{
//pull out item and add to array
NSMutableArray *itemArray = [NSMutableArray new];
for (BoardItemPosition *boardItemPosition in [self boardItems]) {
[itemArray addObject:[boardItemPosition item]];
}
return itemArray;
}