类'test_coredataAppDelegate'的重复接口声明

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类'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

如何解决这个问题

最好的祝福

答案

有两种可能性:

  • 你有两个同名的接口。使用项目菜单选项中的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一个本来应该是#imported的文件,那么两个检查都不会完成,你有时会得到重复的定义。

另一答案

发生这种情况是因为您在查找程序中有该资源的副本。没有必要在项目中添加它。您应该在查找器中找到具有相同名称的文件,并删除重复的文件。

另一答案

在我的情况下替换

#import "Mixpanel.h"

#import <Mixpanel/Mixpanel.h>

解决了错误

另一答案

我有这个第一个副本的解决方案,例如video.m文件给出了这个错误,所以复制这个文件并删除该文件,然后再次粘贴它并再次将该文件添加到项目中:)

另一答案

我删除了日期模型类并创建了新的类并修复了问题。也从项目目录中删除。

以上是关于类'test_coredataAppDelegate'的重复接口声明的主要内容,如果未能解决你的问题,请参考以下文章

Python学习10 内置属性 对象属性 类属性 私有属性 私有方法 对象方法 类方法 静态方法

Python3面向对象—点和矩形类

元类总结

Python学习笔记__7.5章 使用枚举类

python 类实例化

'PlotBackBrush'不能通过类'PlotSurface2D'在项目外暴露类型'IRectangleBrush'