我的应用程序名称为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吗?
提前感谢您的帮助
斯蒂芬
最佳答案
您必须在PropertiesSearchViewController.h中导入PropertiesSearchAppDelegate.h。
要让一个类知道另一个类,您应该导入该类或添加@class指令。添加@class指令只是让该类意识到另一个类的存在。对于您的情况,您应在尝试访问该类的成员时导入PropertiesSearchAppDelegate。