Wie löse ich diese zirkuläre Abhängigkeit auf?

Ich bin neu in der iOS-Entwicklung und habe ein Problem mit meinen Header-Dateien. Ich habe ein zirkuläres Abhängigkeitsproblem mit meinen Header-Dateien. Meine Application-Delegate-Klasse enthält einen Zeiger auf meinen View-Controller, da ich in meiner didFinishLaunchingWithOptions-Methode eine der Eigenschaften des View-Controllers festlegen muss ...

//appDelegate.h     //DISCLAIMER: THIS IS UNTESTED CODE AND WRITTEN ON THE FLY TO ILLUSTRATE MY POINT
#import <UIKit/UIKit.h>
#import "MyViewController.h"

@interface appDelegate

     NSManagedObjectContext *managedObjectContext;

     MyViewController *viewController;
     BOOL myFlag;

@end

//appDelegate.m
@implementation appDelegate

- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
     viewController.managedObjectContext = self.managedObjectContext;
     .
     .
     .
}
@end

Und in meinem View Controller verweise ich auf die "myFlag" -Eigenschaft, die sich in meinem App-Delegaten befindet ...

//MyViewController.h                                        
#import "appDelegate.h"     //<---circular dependency, causing "Expected specifier-qualifier-list before MyViewController" errors in my appDelegate header file

@interface MyViewController: UIViewController
{
     NSManagedObjectContext *managedObjectContext;
}
@end

//MyViewController.m
@import "MyViewController.h"

@implementation MyViewController

- (void)viewWillAppear:(BOOL)animated
{
     [super viewWillAppear:animated];

     ((appDelegate*)[[UIApplication sharedApplication] delegate]).myFlag = NO;
}

@end

Aber um auf die Eigenschaft "myFlag" in meinem App-Delegaten zuzugreifen, muss ich die Header-Datei des App-Delegaten importieren. Dies ist der Grund für die zirkuläre Abhängigkeit. Sie sind sich nicht sicher, wie Sie das beheben können?

Vielen Dank im Voraus für Ihre Hilfe

Antworten auf die Frage(6)

Ihre Antwort auf die Frage