декларация двойного интерфейса для classа ‘test_coredataAppDelegate’

две ошибки, внезапно запущенные в этом fragmentе кода – декларация двойного интерфейса для classа «test_coredataAppDelegate» – переопределение «struct test_coredataAppDelegate»

#import  #import  @interface test_coredataAppDelegate : NSObject  { ///////////////////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 

как это исправить

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

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

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

Редактировать:

Немного больше информации о #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, ни проверка не будет выполнена, и вы иногда получите дубликаты определений.

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

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

 #import "Mixpanel.h" 

в

 #import  

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

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

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

Interesting Posts

JFreeChart: X Axis содержит отметки времени

Миграция: не удается добавить ограничение внешнего ключа в laravel

как массив = {0} задает весь массив равным 0?

Ошибка получения родительского элемента: не найден ресурс, который соответствует указанному имени ‘@android: style / TextAppearance.Holo.Widget.ActionBar.Title’

Какие символы действительны в именах / селекторах classов CSS?

Каков самый простой способ получить подробный список оборудования в моей Windows-коробке?

Добавить Keypair в существующий экземпляр EC2

Как мне заставить jQuery ждать завершения Ajax-вызова до его возвращения?

Проходит ли Java по ссылке?

Префиксная форма унарного оператора в Haskell

Контекстно-зависимое слияние?

Восстановите Windows 10, когда экран входа в систему мерцает и не загружается

Слияние двух файлов excel с использованием общего столбца

Как конвертировать JSON в XML или XML в JSON?

Как я могу сделать звук, проходящий через мой динамик и гарнитуру?

Давайте будем гением компьютера.