无法从相关的View Controller访问appdelegate实例变量

时间:2011-09-05 11:17:37

标签: iphone ios ios4 uiapplicationdelegate uiapplication

我的应用名称是 PropertiesSearch ,因此该项目包含以下文件:

PropertiesSearchAppDelegate.h
PropertiesSearchAppDelegate.m
PropertiesSearchViewController.h
PropertiesSearchViewController.m

我在PropertiesSearchAppDelegate.h中声明了一个实例变量(ListingNav),如下所示:

#import <UIKit/UIKit.h>

@class PropertiesSearchViewController;

@interface PropertiesSearchAppDelegate : NSObject <UIApplicationDelegate> {
    UINavigationController *ListingNav;
}

@property (nonatomic, retain) UINavigationController *ListingNav;

@end

在PropertiesSearchAppDelegate.m中,我添加了

@synthesize ListingNav; 

现在我正试图从PropertiesSearchViewController.m访问ListingNav,如下所示:

PropertiesSearchAppDelegate *appDelegate = (PropertiesSearchAppDelegate *)[[UIApplication sharedApplication] delegate];
// Then here I can easily do appDelegate.ListingNav etc...

但调试器显示:

  

使用未声明的标识符PropertiesSearchAppDelegate

我应该在 PropertiesSearchViewController.h 中导入 PropertiesSearchAppDelegate.h 吗?

请事先提供帮助

的Stephane

1 个答案:

答案 0 :(得分:3)

您必须在 PropertiesSearchViewController.h 中导入 PropertiesSearchAppDelegate.h

要让课程了解其他课程,您应该导入课程或添加 @class指令。添加 @class指令只是让类知道另一个类存在。在您的情况下,您应该在尝试访问类的成员时导入 PropertiesSearchAppDelegate