universidad una resueltos relacional relacion modelo libro extendido entidad empresa ejercicios ejemplos diagrama datos ios xcode core-data xcode7

ios - una - modelo entidad relacion pdf



xcode 7 genera una entidad de datos central con una categoría CoreDataProperties adicional (3)

Anteriormente, el código generado entraba en EntityName.h y EntityName.m que tenía que "extender" con una interfaz como EntityName + Create.h y EntityName + Create.m.

Esto fue difícil de entender para los principiantes que a menudo modificaron la clase EntityName.m y perdieron su código.

Ahora está en la forma correcta: el generador de código no borrará el código existente.

Las otras respuestas son muy buenas para explicar el nuevo sistema.

Pero nadie habla sobre el nuevo problema de compatibilidad si tiene entidades basadas en el sistema anterior.

Mi solución: todavía pongo mi propio código en EntityName + Create.m, pero en EntityName + Create.h me refiero a EntityName + CoreDataProperties.h en lugar de solo EntityName.h (Vacié el código generado previamente en EntityName.h y EntityName .metro). Esta solución me evitó mover mi código de EntityName + Create.m y cambiar todas las referencias a EntityName + Create.h.

espero que esto te ayude.

Tengo una nueva característica extraña en xcode 7, cuando genero una nueva subclase NSManagedObject, xcode crea dos clases: entidad y su categoría CoreDataProperties, que contienen implementación completa. En la imagen de abajo, un ejemplo de lo que quiero decir.

No puedo encontrar ninguna información documentada sobre esto, ¿quién puede explicar por qué funciona tan


Me di cuenta de esto y tampoco pude encontrar ninguna documentación al respecto, pero he experimentado con esta nueva característica y funciona así. Cuando genera por primera vez la subclase NSManagedObject de su modelo Core Data, Xcode generará 4 archivos:

DBUser.h

#import <Foundation/Foundation.h> #import <CoreData/CoreData.h> NS_ASSUME_NONNULL_BEGIN @interface DBUser : NSManagedObject // Insert code here to declare functionality of your managed object subclass @end NS_ASSUME_NONNULL_END #import "DBUser+CoreDataProperties.h"

DBUser.m

#import "DBUser.h" @implementation DBUser // Insert code here to add functionality to your managed object subclass @end

DBUser + CoreDataProperties.h

#import "DBUser.h" NS_ASSUME_NONNULL_BEGIN @interface DBUser (CoreDataProperties) @property (nullable, nonatomic, retain) NSNumber *id; @property (nullable, nonatomic, retain) NSString *name; @end NS_ASSUME_NONNULL_END

DBUser + CoreDataProperties.m

#import "DBUser+CoreDataProperties.h" @implementation DBUser (CoreDataProperties) @dynamic id; @dynamic name; @end

Entonces, como puede ver ahora, todas las propiedades están en un archivo separado con categoría (Propiedades de Datos Core). Más adelante, si genera la subclase NSManagedObject para el mismo modelo, Xcode 7 regenerará solo 2 archivos con categoría (DBUser + CoreDataProperties.hy DBUser + CoreDataProperties.m) para actualizar todas las propiedades de su modelo, pero no realizará ningún cambio en otros 2 archivos. (DBUser.h y DBUser.m) para que pueda usar estos 2 archivos para agregar allí algunos métodos o propiedades personalizados, etc.

En la versión anterior, Xcode generaba siempre solo 2 archivos (DBUser.h y DBUser.m) y ponía propiedades allí para que no pudiera modificar estos archivos fácilmente porque su implementación personalizada se eliminaba cada vez que regeneraba sus subclases. Por lo tanto, era una práctica común crear manualmente una categoría y poner sus métodos en su categoría, lo cual era opuesto a lo que podemos ver en Xcode 7. Sin embargo, tenía muchas desventajas porque teníamos que usar una categoría para la implementación de nuestros métodos que no permite hacer ciertas cosas y ahora podemos modificar fácilmente la interfaz principal y los archivos de implementación, lo que nos permite hacer cualquier cosa con él. ¡Viva!


Para Swift y Xcode 7 es lo mismo que la respuesta de Leszek S, pero solo se crean inicialmente 2 archivos:

  • DBUser.swift
  • DBUser + CoreDataProperties.swift

Más adelante, si realiza cambios en el modelo CoreData y regenera la subclase NSManagedObject solo se actualiza el DBUser+CoreDataProperties.swift . DBUser.swift se DBUser.swift .

Así que ponga todo su código en DBUser.Swift .