Magazin Clasament Scoruri în CoreData?

0

Problema

Am încercat pentru a stoca un clasament în CoreData(cu eventuala CloudKit funcționalitate) pe aplicația mea și a fost confuz cu privire la modul de a face cel mai bine așa.

Utilizatorul va fi capabil de a crea și de a salva mai multe clasamente. Fiecare clasament va fi o data creării, numele, ID-ul, precum și toate scorurile pentru acest clasament. În core model de date (de mai jos), am adăugat toate aceste ca atribute la clasament entitate și pentru scorul atribut, am lăsat-o ca nedefinit. Am fost de gândire de a face o serie de meu score struct. Cu toate acestea, atunci când încerc să fac, newLearboard.scores = [Score]() în Persistence.swift fișier mi s-a spus am nevoie pentru a adăuga la scor as NSObject. Asta e modul corect de a face acest lucru sau acest lucru va crea consecințe neintenționate când mă duc pentru a adăuga/afișare clasament de scoruri?

Scorul este o struct cu câteva domenii, cum ar fi numele și valoare etc.

Nu se poate converti, de asemenea, Scorul matrice la o OrderedSet de la swift colecții pachet în cele din urmă. Acest lucru va crea alte probleme?

enter image description here

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

Cel mai bun răspuns

0

Datele de bază nu știe cum să magazin Swift structs. Xcode este încercarea de a ajuta, dar nu prea reușește. Folosind as NSObject nu va face ceea ce doriți, deoarece o structură nu poate fi distribuit la un NSObject.

Datele de Bază cum ar fi pentru a adăuga o a doua entitate de la modelul numit Score și apoi se adaugă o Bază de Date la-mai-mulți relație de Leaderboard pentru a Score. Apoi, fiecare Score ar fi o NSManagedObject, care este o subclasă a NSObject.

Este de asemenea posibil pentru a pune ceva în Bază de Date dacă puteți converti la un un exemplu Data în primul rând. Dacă ai folosit JSONEncoder ai putea converti scorul matrice pentru a Data și de a folosi o Data atribut. Tu ar trebui să scrie cod pentru a codifica fiecare dată când actualizați scoruri, și a decoda fiecare dată când ai citit scoruri. Dacă vă decideți pentru a face acest lucru, să păstreze în minte că, deși JSONEncoder folosește Codable, Codable nu este util, cu Bază de Date (se poate folosi NSCoding dar asta nu e același lucru).

2021-11-22 18:08:49

De conversie a Datelor oferă securizat codificare mesaj de avertizare trebuie să fie convertit în șir de caractere sau ceva de genul asta.
lorem ipsum

Care nu se potrivește cu experiența mea. Ce descriu eu nu implică NSCoding la toate, asa ca mesajele ar imprima despre securizat de codificare nu se întâmplă.
Tom Harrington

Poate vorbim despre diferite tactici. La ce mă refer este stilul folosit pe intrebare am legat de mai sus. Care fixează codificare mesaj folosind date vine mai mult și mai mult folosind transformabile. Exact mesajul de eroare este, în comentarii.
lorem ipsum

Am fost în mod special evitarea poate fi transformată într-atribute-care JSONEncoder nu lucrez, oricum.
Tom Harrington

În alte limbi

Această pagină este în alte limbi

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