我的应用名称是 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
答案 0 :(得分:3)
您必须在 PropertiesSearchViewController.h 中导入 PropertiesSearchAppDelegate.h 。
要让课程了解其他课程,您应该导入课程或添加 @class指令。添加 @class指令只是让类知道另一个类存在。在您的情况下,您应该在尝试访问类的成员时导入 PropertiesSearchAppDelegate 。