Sunday, 5 November 2017

Core Data Transformable Vs Binary Options


Con un atributo binario, lee y escribe instancias de NSData directamente. Con un atributo transformable, puede leer y escribir instancias de cualquier clase que se pueda convertir a NSData. El almacenamiento de datos real es el mismo que con un atributo binario, pero Core Data utiliza NSValueTransformer para convertir a / desde NSData cuando sea necesario. Por ejemplo, digamos que el objeto administrado tiene un atributo de imagen en el que sería conveniente leer y escribir UIImage directamente. Excepto que UIImage no se puede guardar en Datos básicos. Pero UIImage puede convertirse a NSData. Por lo tanto, si utilizó un atributo transformable, podría leer y escribir UIImage mientras mantiene NSData en el almacén de datos. Responde Jan 10 13 at 18:43 Tom, ¿Los datos transformables conservarían el mismo comportamiento NSData con respecto al almacenamiento externo (aunque, el almacenamiento externo externo no esté explícitamente en la interfaz de usuario, o los blobs empezarían a aparecer en el Core Data Store) No indica con precisión que el atributo transformable se guardará en un registro externo o las reglas que se aplicarán. ¿Puede compartir su experiencia ndash Tommie C. Sep 13 15 at 2:19 Exactamente tengo la misma pregunta. No existe tal opción en el tipo de atributo Transformable que se almacenará en quotExternal Storage. Es por defecto encendido o qué ndash Marcin Kapusta Feb 26 at 16: 02 Estoy a punto de emprender el proyecto desalentador de convertir mi aplicación en vivo (es decir, ya en la App Store durante varios años) de Transformable a Binary Data store para imágenes En Datos básicos. Tengo muchos usuarios con bases de datos muy grandes que almacenan muchas imágenes. Esto realmente ha ralentizado el proceso de copia de seguridad / restauración, y probablemente causó otros problemas detrás de las escenas también. No sabía nada mejor cuando lo configuré de esta manera hace años. ¿Cómo puedo someterme a este proceso para no perder incluso una de mis imágenes de los clientes Si fuera apenas yo y mis propios datos, Im seguro que podría conseguir las cosas que trabajan. Pero quiero estar seguro de hacer esto correctamente, paso a paso, y sabía que esta comunidad podría ser de gran ayuda en esa área. Realmente no sé por dónde empezar para las imágenes existentes. Básicamente, estoy buscando 1) pasos a tomar, para no perder un ritmo. Y 2) asesoramiento general, advertencias, etc. en este proceso. Realmente necesito una migración limpia cuando esta versión entre en funcionamiento. Gracias de antemano a cualquier persona que pueda ayudar. 13 de Marzo a las 18:38 De la respuesta de Z S anterior, parece que tendré que pasar a la gestión de todos los archivos de mí mismo ya que estoy tratando de implementar la sincronización de Core iCloud de datos también. Ugh. ¿Qué tipo de gusanos puede abrirse? Es incluso posible recuperar las imágenes originales de los datos existentes y, en caso afirmativo, ¿esto tardará aún más que la pesada migración que describió anteriormente? Ndash SAHM Mar 14 14 a las 3:13 La migración pesada es lo peor. Hacer una exportación / importación será más rápido (no tan rápido como la migración ligera) y le permitirá conservar todas las imágenes existentes, ya que las exportará al disco como parte de la migración. Ndash Marcus S. Zarra Mar 14 14 at 3:39 Eso es divertido que usted debe decir que, estoy empezando a implementar la sincronización de Core Data iCloud hoy también. El artículo fue muy abrir los ojos. No debe inspirar mucha confianza, especialmente la última parte. Así que parece que no tengo más remedio que guardar la URL, o bien tal vez todavía no es quothe timequot para tratar de implementar la sincronización todavía estoy mirando conjuntos Drew McCormack, si usted tiene alguna idea sobre eso. Ndash SAHM Mar 14 14 at 3:08 Mi opinión personal (después de haber enviado iCloud Core Data sincronización en mi aplicación) es que it39s bastante sólido si se limita a iOS7 / 10.9 SOLAMENTE. No hay duda de que no deberías apoyar nada antes de eso. Incluso entonces, requiere algo de trabajo para apoyar, como el artículo menciona (opciones para cambiar iCloud on / off, transiciones de cuenta, etc) la situación más común para ejecutar es que la sincronización deja de funcionar después de un tiempo para algunos usuarios y usted tiene que Proporcionar una forma de restablecer el contenedor. Haría más investigación. Ndash Z S 14-mar-14 a las 22:22 No he visto lo suficiente en Ensembles para comentar sobre sus habilidades, pero debe ser cuidadoso de confiar en la implementación de otro individuo contra Apple39s. La versión de Apple ha tenido problemas desde el envío, pero han mejorado sustancialmente en cada actualización, y tienen un equipo de personas que apoyan esto en el futuro. Es importante saber con quién está construyendo dependencias. Pero usted debe hacer su propia investigación obviamente. Ndash Z S Mar 14 14 at 22:25 ¿Puede alguien por favor actualizar este It39s sido más de un año desde que se hicieron estos comentarios. I39ve leer el artículo también pero it39s iOS 9 a la vuelta de la esquina y sospecho 39Allow External Storage39 sería (lea: debe) trabajo Si no, we39d han oído hablar de más gritos y quejas. Estoy a punto de crear un nuevo proyecto y necesito tomar las decisiones correctas. Gracias a ndash strangetimes Jul 7 15 at 4: 24Using Transformable ampamp Binary Data propiedades en Core Data: Como sabes, los atributos Core Data pueden tener propiedades como Undefined, Integer16, Integer32, Integer64, Float, Decimal, Date, Boolean, String, Double, Binary Los datos del objetivo C tienen que ofrecer. De todas estas propiedades se deben considerar los datos binarios. Con el apoyo de todas estas propiedades lenguaje Swift también está proporcionando la propiedad Transformable que es muy interesante Importante. Debido a esta propiedad puede poner cualquier tipo de datos en los datos básicos sin sobrecarga adicional. En este tutorial voy a mostrarle cómo usar ambas propiedades. (Binary Data ampamp Propiedades transformables). 1. Como de costumbre crear un nombre de ampamp de aplicación de plantilla singleView it ImportantDataTypeInCoreData ampamp elegir idioma como swift Dejar datos básicos de la casilla de verificación Desmarcada vamos a Insertar nuestro modelo de datos básicos más adelante. Como se muestra en la imagen a continuación: 2. Añadir una canción cuya URL estaremos almacenando en el atributo urlOfSong que vamos a crear en el modelo en breve. 3. Ahora que tenemos un proyecto para completar ampamp vamos a usar las propiedades de Core Data para ahora crear una clase Cocoa Touch con nombre Persistence que es subclase de NSObject ampamp entonces para incluir el modelo haga clic en la carpeta ImportantDataTypeInCoreData ampamp haga clic en Nuevo Archivo - gt Datos básicos (campo iOS) - gtData Modelo amamp nombre propiedades que luego continuar hasta que se creará como se muestra en la imagen: 4. Ahora abra el modelo que acaba de crear ampamp agregar una entidad llamada UseOfDataTypes con dos atributos urlOfSong ampamp nombre del tipo Transformable ampamp Datos binarios respectivamente, mostrados en la imagen siguiente: 5. Mantenga la entidad UseOfDataTypes seleccionada vamos a crear una clase NSObject. Haga clic en la ampamp del editor y luego en la opción Create NSmanagedObject Subclass ampamp siga las instrucciones hasta que se creará la clase con el mismo nombre que la entidad. NSObject subclase se crea con el mismo nombre una entidad UseOfDataTypes lo abre ampamp verá algo como lo que se muestra en el siguiente presentado Image: Como se muestra en esta imagen urlOfSong atributo es de tipo AnyObject porque es de tipo transformable ampamp esto tiene que ser transformado In a lo que necesitamos almacenar en Core Data nombre ampamp es de tipo NSData porque lo configuramos a Datos Binarios en el modelo. Vaya adelante ampamp transformar su clase en algo se muestra en la siguiente imagen: var managedObjectContext. NSManagedObjectContext. Deje modelURL NSBundle. MainBundle (). URLForResource (properties. WithExtension: momd) permite que managedObjectModel NSManagedObjectModel (contentsOfURL: modelURL) deje storeURL Persistence. applicationDocumentDirectory. URLByAppendingPathComponent (properties. sqlite) permite que persistentStoreCoordinator error de var de NSPersistentStoreCoordinator (managedObjectModel: managedObjectModel). NSError. Nil if (persistentStoreCoordinator) addPersistentStoreWithType (NSSQLiteStoreType. configuración: nulo URL: storeURL, opciones: nil. Error: amperror) nil) allow managedObjectContext NSManagedObjectContext () managedObjectContext. PersistentStoreCoordinator persistentStoreCoordinator Aquí en el código mostrado anteriormente todo lo que estamos haciendo es simplemente obtener la ruta donde almacenamos el modelo que hemos creado con el nombre properties. xcdatamodeld ampamp luego la creación de la persistencia de almacenamiento coordinador ampamp ManagedObjectModel ampamp Contexto. ------ gtgtgtgtgtgt Ahora tenemos todo el programa de instalación agrega el siguiente código al archivo Persistence. Swift para almacenar objetos en Core Data: permite que anyObject NSEntityDescription. insertNewObjectForEntityForName (UseOfDataTypes. InManagedObjectContext: managedObjectContext) as. UseOfDataTypes deja la ruta NSURL (fileURLWithPath: NSBundle. MainBundle (). PathForResource (pooja. OfType: mp3)) anyObject. urlOfSong ruta como NSURL var archievedName NSKeyedArchiver. ArchivedDataWithRootObject (Name) // archivando los datos para almacenarlos en el atributo Core Data for Binary Data

No comments:

Post a Comment