Я пытаюсь заменить объекты в многих отношениях один упорядоченный CoreData ... Мой код здесь:Изменение порядка NSMutableOrderedSet CoreData отношений
NSMutableOrderedSet *battingLineUpTemp = [battingOrderToChange.battingOrder mutableCopy];
NSUInteger newBatsmanIndex = 0;
NSLog(@"Original batting order");
for (CricketPlayer *p in battingLineUpTemp) {
NSLog(@"switching : %@ %@",p.firstName, p.lastName);
}
for (int i = [innings.wicketsFallen integerValue] +2; i < [battingOrderToChange.battingOrder count]; i++) {
//[battingLineUpTemp replaceObjectAtIndex:i withObject:batsmenArray[newBatsmanIndex]];
[battingLineUpTemp replaceObjectAtIndex:i withObject:[batsmenArray objectAtIndex:newBatsmanIndex]];
newBatsmanIndex++;
}
NSLog(@"Changed batting order");
for (CricketPlayer *p in battingLineUpTemp) {
NSLog(@"switching : %@ %@",p.firstName, p.lastName);
}
[battingOrderToChange willChangeValueForKey:@"battingOrder"];
[battingOrderToChange setBattingOrder:[[NSOrderedSet alloc] initWithOrderedSet:[battingLineUpTemp copy]]];
battingOrderToChange.battingOrder = battingLineUpTemp;
[battingOrderToChange didChangeValueForKey:@"battingOrder"];
Однако второй выход раз я имена игроков я получаю точно такой же результат, как и раньше! Я убедился, что NSArray (batsmenArray), который я передаю методу, не в том же порядке, что и * battingLineUpTemp ... Почему мой код не позволяет мне изменить порядок этого NSMutableOrderedSet !? Является ли CoreData серьезной болью в заднице еще раз?
Edit 1 Я также уверен, что объект, который я замена и один, который он заменяет разные по NSLogging внутри для цикла ... NSMutableOrderedSet просто отказывается переставить!
Такого рода-оф-ответил на мою проблему так спасибо очень! Вместо добавления другого свойства, чтобы содержать позицию, я просто изменил battingLineUpTemp на NSMutableArray и добавил каждого игрока из battingOrderToChange.battingOrder к нему в цикле ... Затем я переупорядочил NSMutableArray и установил атрибут CoreData, инициировав NSOrderedSet, используя метод 'orderedSetWithArray:' – simonthumper
Рад, что я мог бы помочь. Как мне кажется, я ответил на ваш вопрос, не могли бы вы принять этот ответ, выбрав зеленую галочку? Спасибо и продолжение Удача с вашим проектом, Андрей – adonoho
Несомненно, извините за задержку! был занят! SiMn – simonthumper