Archivio Classifica Punteggi in CoreData?

0

Domanda

Sto cercando di memorizzare una classifica in CoreData(con eventuale CloudKit funzionalità) sulla mia app ed era confuso su come farlo.

L'utente sarà in grado di creare e salvare più classifiche. Ogni classifica avrà una data di creazione, nome, ID, così come tutti i punteggi per la classifica. Nel modello di dati di base (di seguito), ho aggiunto tutti quelli come attributi per la classifica entità e per il punteggio attributo, ho lasciato il valore undefined. Stavo pensando di fare un array di mio score struct. Tuttavia, quando provo a fare, newLearboard.scores = [Score]() nel mio Persistence.swift il file mi è stato detto che ho bisogno di aggiungere il punteggio as NSObject. È questo il modo corretto di fare questo o questo può creare conseguenze indesiderate quando vado per aggiungere/visualizzare la classifica dei punteggi?

Il punteggio è di una struttura con pochi campi come il nome e il valore etc.

Mi può anche convertire il Punteggio matrice a una OrderedSet dalla swift collezioni pacchetto alla fine. Questo può creare altri problemi?

enter image description here

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

Migliore risposta

0

I Dati principali di non sapere come memorizzare Swift strutture. Xcode cerca di aiuto, ma non riuscirci. Utilizzando as NSObject non fare quello che si vuole perché una struttura non può essere typecast un NSObject.

I Dati fondamentali, in modo potrebbe essere quello di aggiungere una seconda entità per il modello denominato Score e poi aggiungere un Nucleo di Dati relazione da Leaderboard per Score. Quindi ogni Score sarebbe un NSManagedObjectche è una sottoclasse di NSObject.

È anche possibile mettere qualcosa nel Core di Dati se è possibile convertirlo in un un'istanza Data per prima. Se hai usato JSONEncoder si potrebbe convertire il tuo punteggio array Data e utilizzare un Data attributo. Sarebbe necessario scrivere codice per codificare ogni volta che si aggiornano i punteggi, e decodificare ogni volta che leggi i punteggi. Se si decide di fare questo, tenere a mente che, sebbene JSONEncoder utilizza Codable, Codable non è utile con i Dati principali (è possibile utilizzare NSCoding ma non è la stessa cosa).

2021-11-22 18:08:49

La conversione di Dati fornisce il codice protetto messaggio di avviso deve essere convertito in stringa, o qualcosa di simile.
lorem ipsum

Che non corrisponde alla mia esperienza. Quello che sto descrivendo non comporta NSCoding a tutti, quindi i messaggi che vorresti stampare su secure coding non accadono.
Tom Harrington

Forse stiamo parlando di tattiche diverse. A cosa mi sto riferendo è lo stile utilizzato sulla domanda che ho linkato sopra. Che fissano la codifica del messaggio utilizzando i dati esce di più e di più, utilizzando trasformabile. Il messaggio di errore esatto è nei commenti.
lorem ipsum

Mi è stato specificamente evitando trasformabile attributi-- che JSONEncoder non vorrei lavorare con, comunque.
Tom Harrington

In altre lingue

Questa pagina è in altre lingue

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