objective-c - from - pod googletagmanager
declaraciĆ³n de interfaz duplicada para la clase ''test_coredataAppDelegate'' (5)
dos errores se activaron repentinamente en este fragmento de código: declaración de interfaz duplicada para la clase ''test_coredataAppDelegate'' - redefinición de ''struct test_coredataAppDelegate''
#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>
@interface test_coredataAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
///////////////////New parts /////////////////////////
NSManagedObjectModel *managedObjectModel;
NSManagedObjectContext *managedObjectContext;
NSPersistentStoreCoordinator *persistentStoreCoordinator;
//////////////////////////////////////////////
UIWindow *window;
UITabBarController *tabBarController;
}
@property (nonatomic, retain, readonly) NSManagedObjectModel *managedObjectModel;
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain, readonly) NSPersistentStoreCoordinator *persistentStoreCoordinator;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet UITabBarController *tabBarController;
@end
como arreglar eso por favor
Atentamente
En mi caso sustituyendo
#import "Mixpanel.h"
a
#import <Mixpanel/Mixpanel.h>
Resuelto el error
Esto sucede porque tienes una copia de ese recurso en tu buscador. No es necesario haberlo añadido en tu proyecto. Debe encontrar en su buscador los archivos con el mismo nombre y eliminar los archivos duplicados.
Hay dos posibilidades:
- Tienes dos interfaces con el mismo nombre. Use la opción de menú Buscar de Xcode en el proyecto para encontrar instancias de
test_coredataAppDelegate
. Luego renombra una de las interfaces - de alguna manera has logrado importar el archivo .h dos veces. Asegúrese de usar siempre
#import
y no#include
.
Editar:
Un poco más de información sobre #import
/ #include
:
#include
incluye ciegamente el archivo en la ubicación de la declaración #include
. Esto significa que si #include
un archivo dos veces en su .m
obtendrá dos copias del archivo. Casi todos los archivos de C #include
tradicionales tienen algo como lo siguiente que incluye entre corchetes todo el contenido:
// some_file.h
#if !defined SOME_FILE_H
#define SOME_FILE_H
// entire content of #include file
#endif
Lo anterior a veces se conoce como una macro de guarda de inclusión.
En Objective-C, si #import
importa un archivo, el compilador realiza una comprobación para asegurarse de que no se haya importado ya. En consecuencia los guardias suelen ser omitidos. Por lo tanto, si #include
un archivo que se suponía que debía #import
, no se realizará ninguna comprobación y, a veces, obtendrá definiciones duplicadas.
He eliminado la clase de modelo de fecha y crear una nueva y se ha solucionado el problema. También eliminar del directorio del proyecto.
Tengo la solución para esta primera copia de ese archivo, por ejemplo, video.m está dando este error, así que copie este archivo y elimine ese archivo, péguelo nuevamente y agregue ese archivo al proyecto nuevamente :)