Obchod Rebríčku Skóre v CoreData?

0

Otázka

Snažím sa obchod leaderboard v CoreData(s prípadným CloudKit funkčnosť) na moju aplikáciu a bol zmätený o tom, ako najlepšie urobiť.

Používateľ bude môcť vytvoriť a uložiť aj viacero rebríčkov. Každá tabuľka bude mať dátum vytvorenia, name, ID, a aj na všetkých skóre, ktoré víťazov. V jadre dátový model (nižšie), pridala som všetky tie ako atribúty na leaderboard účtovnej jednotky a na skóre atribút, nechal som to tak definované. Ja som mal na mysli, takže je pole moje score struct. Avšak, keď sa snažím urobiť, newLearboard.scores = [Score]() v mojom Persistence.swift súbor som povedal, musím pridať skóre as NSObject. Je to správny spôsob, ako to urobiť, alebo to bude vytvoriť neúmyselné dôsledky, keď idem pridať/displej leaderboard skóre?

Skóre je struct s pár takých oblastiach, ako je názov a hodnotu atď.

Som tiež môže previesť Skóre pole na OrderedSet z kolekcie swift package nakoniec. Bude to vytvoriť ďalšie otázky?

enter image description here

cloudkit core-data swift swiftui
2021-11-22 17:20:15
1

Najlepšiu odpoveď

0

Základné Údaje nevie ako obchod Swift structs. Xcode sa snaží pomôcť, ale nie naozaj úspech. Pomocou as NSObject nebude robiť, čo chcete, pretože struct nemožno obsadiť na NSObject.

Základné Údaje spôsob, ako by bolo pridať druhý subjekt, model nazvaný Score a potom pridať Základných Údajov a to-many vzťah z Leaderboard na Score. Potom každý Score by NSManagedObject, ktoré je podtriedy NSObject.

Je tiež možné, aby sa niečo v Základných Údajov a ak nie je možné konvertovať ju na inštanciu Data ako prvý. Ak ste použili JSONEncoder ste mohli previesť vaše skóre pole na Data a použitie Data atribút. Budete musieť napísať kód na kódovanie každej aktualizácii skóre, a dekódovať zakaždým, keď budete čítať skóre. Ak ste sa rozhodli urobiť, majte na pamäti, že aj keď JSONEncoder používa Codable, Codable nie je užitočné s Jadrom Údajov (môže sa použiť NSCoding ale to nie je isté).

2021-11-22 18:08:49

Konverzia Údajov dáva bezpečné kódovanie správa s upozornením, že má byť prevedená do reťazec alebo niečo také.
lorem ipsum

Že sa nezhoduje moja skúsenosť. To, čo som opisom nemá zapojiť NSCoding na všetkých, takže správy, že by tlač o bezpečné kódovanie, nemusíte sa stalo.
Tom Harrington

Možno sme hovorili o rôznych taktík. Čo mám na mysli je štýl používa na otázku, I spojené vyššie. Že bezpečné kódovanie správy pomocou údajov, prichádza stále viac a viac pomocou transformable. Presné chybové hlásenie je v komentároch.
lorem ipsum

Bol som osobitne sa vyhnúť môže sa nastaviť atribúty-- ktoré JSONEncoder nechcel pracovať, a tak.
Tom Harrington

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................