bottom bar ios xcode core-data nsmanagedobject
https://www.dropbox.com/s/xwyzhshktb2hqe7/demo2.zip?dl=0

ios - bar - los ''nombres de archivo se utilizan para distinguir las declaraciones privadas del mismo nombre'' error



status bar iphone (6)

El problema está sucediendo debido a la función de generación automática de subclases de Xcode .

De acuerdo con lo nuevo en los datos principales

Generación automática de subclas Xcode

Xcode ahora admite la generación automática de subclases NSManagedObject en la herramienta de modelado. En el inspector de entidades:

  • Manual / None es el comportamiento predeterminado y anterior; en este caso, debe implementar su propia subclase o usar NSManagedObject.
  • La categoría / extensión genera una extensión de clase en un archivo llamado como ClassName + CoreDataGeneratedProperties. Debes declarar / implementar la clase principal (si está en Obj-C, a través de un encabezado, la extensión puede importar Nombre de clase llamado.h).
  • La definición de clase genera archivos de subclase nombrados como ClassName + CoreDataClass, así como los archivos generados para Category / Extension.

Los archivos generados se colocan en DerivedData y se reconstruyen en la primera construcción después de guardar el modelo. También están indexados por Xcode, por lo que funciona haciendo clic en las referencias y abrir rápidamente por nombre de archivo.


Por lo tanto, para solucionar su problema, debe establecer el valor del campo Codegen en Manual/None como se muestra a continuación:

Estoy obteniendo este error al generar un NSManagedObject en Xcode 8.1 en Swift.

: 0: error: nombre de archivo "DemoOne + CoreDataClass.swift" usado dos veces: ''/ Users / Swasidhant / Desktop / demo again / DemoOne + CoreDataClass.swift'' y ''/ Users / Swasidhant / Library / Developer / Xcode / DerivedData / demo_again- hiinrbwwbmyfbrbctsfdzvudkkuy / Build / Intermediates / demo again.build/Debug-iphonesimulator/demo again.build/DerivedSources/CoreDataGenerated/Model/DemoOne+CoreDataClass.swift '': 0: nota: los nombres de archivo se utilizan para distinguir declaraciones privadas con el mismo nombre: 0 : error: nombre de archivo "DemoOne + CoreDataProperties.swift" usado dos veces: ''/ Users / Swasidhant / Desktop / demo again / DemoOne + CoreDataProperties.swift'' y ''/ Users / Swasidhant / Library / Developer / Xcode / DerivedData / demo_again-hiinrbwwbmyfbrbctsfdzvudkkuy / Build / Intermediates / demo again.build/Debug-iphonesimulator/demo again.build/DerivedSources/CoreDataGenerated/Model/DemoOne+CoreDataProperties.swift '': 0: nota: los nombres de archivo se usan para distinguir declaraciones privadas con el mismo nombre Command / Applications / Xcode.app/Contents/Developer/Toolchains/XcodeDefaul t.xctoolchain / usr / bin / swiftc falló con el código de salida 1

Busqué esto y obtuve respuestas diciendo que el archivo podría estar presente dos veces en el proyecto, que no es mi caso. Otra solución que encontré fue eliminar el archivo de la fase de compilación y volver a agregarlo. Eso tampoco funcionó. ¿Es algún error de configuración de configuración de compilación? ¿O algo mas?

Aquí está el enlace con un proyecto de demostración creado con Xcode 8.1 y que muestra este problema: - https://www.dropbox.com/s/xwyzhshktb2hqe7/demo2.zip?dl=0


El problema se debió a un segundo archivo llamado: "Extensions.swift" en mi proyecto.

Después de eliminar el duplicado "Extensions.swift", se resolvió el error. Su mensaje de error podría indicarle qué archivo está duplicado.


En mi caso, el Modelo de datos (como ejemplo: MyCoreData.xcdatamodeld) se listó dos veces en Editor -> Crear subclase de NSManagedObject ... Y aquí estaba la razón por la que recibía este tipo de error.

Lo que hice:

  1. Eliminé el archivo MyCoreData.xcdatamodeld.
  2. Se creó otro modelo de datos como ejemplo MyCD.xcdatamodeld.
  3. Aquí se muestran los modelos de datos duplicados: Editor -> Crear subclase NSManagedObject ...
  4. Limpiar y luego construir por dos veces.

Esto es lo que hice para solucionar este problema,

  1. Seleccione su entidad en el modelo de datos
  2. Establecer el módulo al módulo de producto actual
  3. Deje el Codegen a la definición de clase, aunque Manual / None también funciona
  4. Seleccione Editor> Crear subclase NSManagedObject

Puede ayudar a alguien, Ir a la fuente de compilación del proyecto, eliminar la referencia adicional, en su caso.


Seleccione el modelo de datos de código y luego seleccione la Entidad cambie el valor de ''Codegen'' a Manual / None.

Funcionará.