Obchod Leaderboard Skóre v CoreData?

0

Otázka

Snažím se obchod žebříčku v CoreData(s případnou CloudKit funkce) na mé aplikace a byl zmatený o tom, jak nejlépe to udělat.

Uživatel bude moci vytvořit a uložit více žebříčků. Každý žebříčku bude mít datum vytvoření, jméno, ID, stejně jako všechny výsledky pro daný žebříčku. V core data model (níže), jsem přidal všechny ty atributy do žebříčku subjektu a pro skóre atribut, nechal jsem to jako nedefinované. Myslel jsem, že dělat to pole mého score struct. Nicméně, když se snažím dělat, newLearboard.scores = [Score]() v mém Persistence.swift sice jsem řekl, musím přidat skóre as NSObject. Je to správný způsob, jak to udělat, nebo bude vytvářet nezamýšlené důsledky, když jsem jít do přidat/zobrazit leaderboard skóre?

Skóre je struct s několika oblastech, jako jsou název a hodnota atd.

Možná také převést Skóre pole na OrderedSet z rychlé kolekce balíček nakonec. Bude to vytvořit další problémy?

enter image description here

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

Nejlepší odpověď

0

Základní Údaje neví, jak na obchod Swift structs. Xcode se snaží pomoci, ale ne opravdu úspěch. Pomocí as NSObject nebude dělat to, co chcete, protože struct nelze zaškatulkovat do NSObject.

Základní Údaje způsob, jak by bylo přidat druhý subjekt, k modelu tzv. Score a pak přidat Základní Údaje-mnoho vztah z Leaderboard k Score. Pak každý Score bude NSManagedObject, která je podtřídou NSObject.

Je také možné, aby něco v Core Data, pokud můžete převést na instanci Data první. Pokud jste použili JSONEncoder můžete převést vaše skóre pole Data a používat Data atribut. Budete muset psát kód pro kódování pokaždé, když budete aktualizovat skóre, a dekódovat pokaždé, když si skóre. Pokud se rozhodnete to udělat, mějte na paměti, že i když JSONEncoder používá Codable, Codable není vhodné s Core Data (to může používat NSCoding ale to není to samé).

2021-11-22 18:08:49

Převod Dat poskytuje bezpečné kódování upozornění, že má být převeden na řetězec, nebo něco takového.
lorem ipsum

To neodpovídá mé zkušenosti. To, co popisuji, nebude zahrnovat NSCoding na všechny, tak zprávy, že by tisk o bezpečné kódování nedějí.
Tom Harrington

Možná se bavíme o různých taktik. Co mám na mysli je styl použit na otázku, spojila jsem výše. Že bezpečné kódování zpráv pomocí dat přichází více a více pomocí přestavitelného. Přesnou chybovou zprávu, je v komentářích.
lorem ipsum

Byl jsem konkrétně vyhýbat transformovatelné atributy-které JSONEncoder nebude fungovat, tak jako tak.
Tom Harrington

V jiných jazycích

Tato stránka je v jiných jazycích

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