我是iOS开发的新手,我的头文件遇到了一个问题。我的头文件遇到了循环依赖问题。我的应用程序委托类包含一个指向视图控制器的指针,因为我必须在didFinishLaunchingWithOptions方法中设置视图控制器的一个属性...
//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
在我的视图控制器中,我引用了应用程序委托中的"myFlag“属性……
//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
但是为了访问我的应用程序委托中的"myFlag“属性,我需要导入应用程序委托的头文件。这就是导致循环依赖的原因。不知道如何解决这个问题,有没有人遇到过这个问题?
提前感谢您的帮助!
发布于 2010-08-15 06:13:41
我没有读取所有内容,但您可以使用@class进行转发声明。通常我是如何解决循环依赖的。
https://stackoverflow.com/questions/3485314
复制相似问题