Tienda de Clasificación de las Puntuaciones en CoreData?

0

Pregunta

Estoy tratando de almacenar una tabla de clasificación en CoreData(con eventual CloudKit funcionalidad) en mi app y estaba confundido acerca de cómo hacerlo.

El usuario será capaz de crear y guardar múltiples tablas de clasificación. La clasificación tendrá una fecha de creación, nombre, ID, así como todas las puntuaciones para que la tabla de clasificación. En el núcleo del modelo de datos (a continuación), he añadido todos aquellos como atributos a la tabla de clasificación de la entidad y para la puntuación del atributo, la dejé como indefinido. Yo estaba pensando en hacer una serie de mi score struct. Sin embargo, cuando intento hacer, newLearboard.scores = [Score]() en mi Persistence.swift archivo me dice que me necesita agregar la puntuación as NSObject. Es esta la forma correcta de hacer esto o esto de crear consecuencias no deseadas cuando voy a agregar/visualización de la tabla de puntuaciones?

La puntuación es una estructura con un par de campos tales como el nombre y el valor de etc.

También puede convertir la Puntuación de la matriz a una OrderedSet de la swift colecciones paquete con el tiempo. Será esto de crear otros temas?

enter image description here

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

Mejor respuesta

0

Datos básicos no sabe cómo almacenar Swift estructuras. Xcode está tratando de ayudar, pero no realmente tener éxito. El uso de as NSObject no hacer lo que usted quiera, porque una estructura que no puede ser encasillado a un NSObject.

Los Datos Básicos manera sería añadir una segunda entidad en el modelo llamado Score y, a continuación, agregue un Núcleo de Datos-muchos de relación de Leaderboard a Score. A continuación, cada uno de los Score sería un NSManagedObject, que es una subclase de NSObject.

También es posible poner nada en el Núcleo central de Datos si usted puede convertirlo en una instancia Data en primer lugar. Si usted utiliza JSONEncoder usted puede convertir su puntuación de la matriz de Data y el uso de un Data atributo. Tendría que escribir código para codificar cada vez que la actualización de las puntuaciones, y descodificar cada vez que usted lea las calificaciones. Si usted decide hacer esto, tenga en cuenta que aunque JSONEncoder utiliza Codable, Codable no es útil con los Datos de los núcleos (se puede utilizar NSCoding pero esa no es la misma cosa).

2021-11-22 18:08:49

La conversión de Datos da la codificación segura mensaje de advertencia que ha de ser convertido a la cadena o algo por el estilo.
lorem ipsum

Que no coincide con mi experiencia. Lo que estoy describiendo no implica NSCoding en todos, por lo que los mensajes que se imprima sobre codificación segura no suceden.
Tom Harrington

Tal vez estamos hablando de tácticas diferentes. A lo que me refiero es el estilo utilizado en la pregunta que me he enlazado más arriba. Que seguro de codificación de mensajes utilizando los datos viene más y más con transformables. El mensaje de error exacto es en los comentarios.
lorem ipsum

Yo estaba específicamente evitando transformables atributos que JSONEncoder no trabajar con el, de todos modos.
Tom Harrington

En otros idiomas

Esta página está en otros idiomas

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