0
我想在很多替換對象一個有序的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的巨大痛苦?
編輯1 我也確信,我替換的對象和它替換的一個內部的for循環...的NSMutableOrderedSet被簡單地拒絕被重新排布不同的NSLogging!
這種-的,回答我的問題,所以謝謝非常!我只是將battingLineUpTemp更改爲NSMutableArray,並將每個玩家從battingOrderToChange.battingOrder添加到循環中,然後重新排序該NSMutableArray,並通過使用方法初始化NSOrderedSet來設置CoreData屬性,而不是添加另一個屬性來包含位置'orderedSetWithArray:' – simonthumper
很高興我能幫忙。由於看起來我回答了您的問題,您是否介意選擇綠色複選標記來接受此答案?謝謝你,並繼續與你的項目運氣,安德魯 – adonoho
當然,對不起,延遲!一直很忙!硅錳 – simonthumper