tutorial query existing español data swift core-data

existing - query core data swift 4



Errores después de ''Crear subclase NSManagedObject para entidades de CoreData (5)

El valor predeterminado actual en Xcode es crear automáticamente subclases de NSManagedObject para usted en /Users/<your user name>/Library/Developer/Xcode/DerivedData/AppName-agkwmibzbo‌​pevjgfajlcbyixzyev/B‌​uild/Intermediates/A‌​ppName.build/Debug-i‌​phonesimulator/AppNa‌​me.build/DerivedSour‌​ces/CoreDataGenerate‌​d/Model directory; El directorio DerivedData es donde Xcode guarda el código generado automáticamente. Está redeclarando la misma subclase al hacer Editor> Crear subclase NSManagedObject ... es por eso que está obteniendo la "Invalid redeclaration of ''UserRoutine'' ''UserExercise'' is ambiguous for type lookup in this context @NSManaged only allowed on an instance property or method" error. Para resolver los errores y crear manualmente una subclase de NSManagedObjects, lo que debe hacer es:

  1. Abra la terminal y vaya a /Users/<your user name>/Library/Developer/Xcode/DerivedData/AppName-agkwmibzbo‌​pevjgfajlcbyixzyev/B‌​uild/Intermediates/A‌​ppName.build/Debug-i‌​phonesimulator/AppNa‌​me.build/DerivedSour‌​ces/CoreDataGenerate‌​d/Model

  2. Ejecuta este comando: rm -rf * (ahora ten cuidado con este comando, ejecútalo solo cuando llegues al directorio final donde están los códigos generados o romperás tu proyecto para siempre)

  3. Eliminar su modelo de datos actual

  4. Crear un nuevo modelo de datos

  5. Seleccione la entidad de su nuevo modelo de datos (haga esto para cada entidad dentro del modelo de datos) y vaya a su inspector de atributos y configure su Codegen en Manual/None antes de la primera ejecución después de haber creado un nuevo modelo de datos.

  6. Cree una subclase de NSManagedObject yendo a Editor> Crear subclase NSManagedObject ...

Tus errores deberían desaparecer.

Espero que esto haya ayudado!

Creé 2 entidades de datos centrales y luego creé las Subclases NSManagedObject desde el menú del editor.

Sin embargo, cuando ejecuto mi aplicación, obtengo errores en cada línea de todos los archivos por algún motivo.

Aquí hay un ejemplo, estos errores son los mismos para las dos entidades creadas.

El Código de archivo se generó automáticamente, así que puedo apolo aquí pero no estoy seguro de su uso

import Foundation import CoreData extension UserExercise { @nonobjc public class func fetchRequest() -> NSFetchRequest<UserExercise> { return NSFetchRequest<UserExercise>(entityName: "UserExercise"); } @NSManaged public var id: Int16 @NSManaged public var name: String? @NSManaged public var reps: Int16 @NSManaged public var sets: Int16 @NSManaged public var weight: Int16 @NSManaged public var relationship: NSSet? } // MARK: Generated accessors for relationship extension UserExercise { @objc(addRelationshipObject:) @NSManaged public func addToRelationship(_ value: UserRoutine) @objc(removeRelationshipObject:) @NSManaged public func removeFromRelationship(_ value: UserRoutine) @objc(addRelationship:) @NSManaged public func addToRelationship(_ values: NSSet) @objc(removeRelationship:) @NSManaged public func removeFromRelationship(_ values: NSSet) }

Los errores son:

Command / Applications / Xcode.app / Contents / Developer / Toolchains / XcodeDefault.xctoolchain / usr / bin / swiftc falló con el código de salida 1

La redeclaración no válida de ''UserRoutine'' ''UserExercise'' es ambigua para la búsqueda de tipo en este contexto @NSManaged solo está permitida en una propiedad o método de instancia

Hay demasiados para enumerar sus básicamente estos repetidos una y otra vez


Esto es para Swift 3.0 y Xcode 8.2.1 (8C1002)

No estoy seguro de por qué navegaría manualmente al proyecto cuando puede simplemente eliminar los archivos directamente desde Xcode.

Encuentre todos sus archivos generados desde el xcdatamodeld, dentro del navegador de su proyecto. Borre todos los archivos y asegúrese de pasar a la papelera, no elimine las referencias, de lo contrario tendrá que eliminar manualmente los archivos de:

/ Usuarios // Biblioteca / Desarrollador / Xcode / DerivedData / AppName-agkwmibzbo pevjgfajlcbyixzyev / B uild / Intermediates / A ppName.build/Debug-i phonesimulator / AppNa me.build/DerivedSour ces / CoreDataGenerate d / Modelo

De acuerdo, después de eliminar los archivos, abra su xcdatamodeld, seleccione todas sus entidades y, en el panel Utilidades, seleccione el botón Inspector del modelo de datos y asegúrese de que Codegen esté configurado en "Manual / None".

Seleccione su xcdatamodeld y asegúrese de que Codegen esté configurado en "Manual / None"

Mantenga todas sus entidades seleccionadas y haga clic en Editor> Crear subclase NSManagedObject, asegúrese de seleccionar la carpeta y arrastre y suelte los archivos generados en su subgrupo Model y su subgrupo generado.

Esto funcionó para mí y debería funcionar para usted también.

Espero haberte ayudado.


También encontré este error. Lo arreglé borrando las antiguas subclases de entidades generadas y volviéndola a crear, y para el grupo seleccioné el espacio de trabajo en lugar del proyecto o la carpeta del proyecto, y las subclases se guardaron encima del archivo del proyecto. Se ve raro pero solucionó el problema. Además, si muevo los archivos a la carpeta dentro del proyecto, el error vuelve a aparecer.


Un enfoque simple que funcionó para mí ... Puede encontrarlos eligiendo una entidad y haciendo clic en el Inspector de modelo de datos en la esquina superior derecha. Haz esto para todas tus entidades
Es importante FIRST establecer Módulo para "Módulo de producto actual" Y Codegen para "Manual / None"

Solo entonces, SEGUNDO: Editor -> Crear subclase NSManagedObject.


Xcode administra por defecto la generación de estas subclases por usted. Si desea administrar la generación de ellos usted mismo, entonces:

  1. Seleccione sus entidades en el modelo de datos.
  2. Busque Codegen en el panel de utilidades (panel derecho) y configúrelo en Manual / None .
  3. Limpiar y construir