Подтвердить что ты не робот

Декларация двойного интерфейса для класса 'test_coredataAppDelegate'

две ошибки, внезапно запущенные в этом фрагменте кода - декларация двойного интерфейса для класса 'test_coredataAppDelegate' - переопределение "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

как исправить это, пожалуйста,

С наилучшими пожеланиями

4b9b3361

Ответ 1

Есть две возможности:

  • У вас есть два интерфейса с тем же именем. Используйте Xcode find в опции меню проекта, чтобы найти экземпляры test_coredataAppDelegate. Затем переименуйте один из интерфейсов
  • каким-то образом вам удалось дважды импортировать файл .h. Убедитесь, что вы всегда используете #import, а не #include.

Edit:

Немного больше информации о #import/#include:

#include слепо включает файл в местоположении оператора #include. Это означает, что если вы #include файл дважды в вашем .m, вы получите две копии файла. Почти все традиционные файлы C #include имеют что-то вроде следующего брекетинга всего содержимого:

// some_file.h
#if !defined SOME_FILE_H
#define SOME_FILE_H

//  entire content of #include file

#endif

Вышеупомянутое иногда упоминается как защитный макрос включения.

В Objective-C, если вы #import файл, проверка выполняется компилятором, чтобы убедиться, что он еще не был импортирован. Следовательно, ограждения обычно опускаются. Поэтому, если вы #include файл, который должен был быть #import ed, ни одна проверка не будет выполнена, и вы иногда получите дубликаты определений.

Ответ 2

Это происходит потому, что у вас есть копия этого ресурса в вашем приложении. Не нужно было добавлять его в свой проект. Вы должны найти в своем приложении файлы с тем же именем и удалить дубликаты файлов.

Ответ 3

В моем случае замена

#import "Mixpanel.h"

к

#import <Mixpanel/Mixpanel.h>

Устранена ошибка

Ответ 4

У меня есть решение для этого сначала скопируйте этот файл например, video.m дает эту ошибку поэтому скопируйте этот файл и удалите этот файл и просто вставьте его снова и добавьте этот файл для повторного проекта :)

Ответ 5

Я удалил модель модели даты и создаю новую и исправил ее. также удалите из каталога проекта.