chcę pokazać dane, ponieważ pochodził z backend Warto więc mieć przykładowy plik json:NSOrderedSet odpowiedź od serwera i danych Core
{
"fonts": [
{
"name": "Helvetica",
"styleIdentifier": "H0",
"size": 17
},
{
"name": "Helvetica",
"styleIdentifier": "H1",
"size": 14
},
{
"name": "Helvetica-Bold",
"styleIdentifier": "H0Bold",
"size": 17
},
{
"name": "HelveticaNeue-Light",
"styleIdentifier": "H0Light",
"size": 40
}
]
}
Więc tworzę relationship
(wiele - wiele) z ordered
wybranej opcji . A przy wejściu widzę to zawsze pisać w taki sam sposób do danych Core, ale gdy próbuję pobrać go
configuratation.fonts
gdzie fonts
jest NSOrderedSet
ja dostać elementy w kolejności zupełnie przypadkowej kolejności. Tęsknię za tym w specyfikacji? A może powinienem to jakoś posortować?
__EDIT__
Po pierwsze kiedy ja dostać danych z wyżej json Mam konfiguracji zestaw z pustym stosunku czcionki. Następnie pobieram to i wstawiam do podstawowych danych za pomocą:
NSMutableArray *returnArray = [NSMutableArray new];
for(NSDictionary *fontDictionary in jsonArray) {
Font *fontObj = [Font font:fontDictionary inContext:context];
[returnArray addObject:fontObj];
}
W tej tablicy dane są w prawidłowej kolejności. Następnie w obiekcie konfiguracyjnym i dodać go do NSOrderedSet
przez:
-(void)appendTracks:(NSArray<Font*>*)fontArray {
self.fonts = [NSOrderedSet orderedSetWithArray: fontArray];
}
a potem spróbować sprowadzić go po prostu używać odniesienia:
configuration.fonts
I w tym punkcie dane nie są całkowicie w odpowiedniej kolejności.
Edytuj pytanie, aby pokazać, jak pobierasz dane, gdy otrzymasz je w niewłaściwej kolejności. –
Dodałem oba - dane wejściowe i wyjściowe – Kuba
Nie dostaję go wtedy - jeśli potrzebuję dodatkowego atrybutu jaka jest różnica w podstawowych danych między NSSet i NSOrderedSet? – Kuba