这段代码突然引发了两个错误
- 类“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
.
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,这两项检查都不会完成,有时您会得到重复的定义。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)