Soy nuevo en el desarrollo de iOS y me estoy encontrando con un problema con mis archivos de encabezado. Me encuentro con un problema de dependencia circular con mis archivos de encabezado. Mi clase de aplicación delegado contiene un puntero a mi controlador de vista, ya que tengo que establecer una de las propiedades del controlador de vista en mi método didFinishLaunchingWithOptions ...¿Cómo resuelvo esta dependencia circular?
//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
Y en mi controlador de vista, me refiero a la propiedad "myFlag" , eso es en mi aplicación delegado ...
//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
Pero con el fin de acceder a la propiedad "myFlag" en mi aplicación delegado, necesito para importar el archivo de cabecera del delegado de la aplicación. Esto es lo que está causando la dependencia circular. No estoy seguro de cómo resolver esto, ¿alguien se ha topado con esto?
Gracias de antemano por su ayuda!
+1 .. Gran pregunta. – iwasrobbed
Me encanta. \t ayuda 5 más para ir .. – Mel