I\'m new to iOS development and am running into an issue with my header files. I\'m running into a circular dependency issue with my header files. My application delegate clas
@class is the syntactic approach you're looking for.
Many coders look to avoid this circularity (which couples your classes in two directions, meaning your view controller can only be used in circumstances where the app delegate has that BOOL). There are a few ways you can do this:
For small projects this kind of dependency is probably not really a problem, but as project size grows and the desirability of code reuse grows, clean functional separation becomes more and more valuable.
Don't #import "MyViewController.h"
in appDelegate.h
. Instead, forward-declare the class.
@class MyViewController;
@interface appDelegate
NSManagedObjectContext *managedObjectContext;
MyViewController *viewController;
BOOL myFlag;
@end
Also, you don't need to #import "appDelegate.h"
in MyViewController.h
if all you need is to reference the myFlag
property in the implementation. Instead, import it in the MyViewController.m
file.
Did not read everything, but you can do forward declarations with @class. Usually how I solve circular dependencies.