two errors suddenly fired in this piece of code
– duplicate interface declaration for class ‘test_coredataAppDelegate’
– redefinition of ‘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
how to fix that please
Best regards
There are two possibilities:
test_coredataAppDelegate. Then rename one of the interfaces#importand not#include.Edit:
A bit more info on
#import/#include:#includeblindly includes the file at the location of the#includestatement. This means that if you#includea file twice in your.myou will get two copies of the file. Almost all traditional C#includefiles have something like the following bracketing all the content:The above is sometimes referred to as an include guard macro.
In Objective-C, if you
#importa file, a check is performed by the compiler to make sure it has not already been imported. Consequently the guards are usually omitted. So if you#includea file that was supposed to be#imported, neither check will be done and you will sometimes get duplicate definitions.