Не удается получить доступ к переменной экземпляра appdelegate из связанного контроллера представления

Мое приложение называется PropertiesSearch, поэтому проект содержит следующие файлы:

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

Я объявил переменную экземпляра (ListingNav) в PropertiesSearchAppDelegate.h следующим образом:

#import <UIKit/UIKit.h>

@class PropertiesSearchViewController;

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

@property (nonatomic, retain) UINavigationController *ListingNav;

@end

и в PropertiesSearchAppDelegate.m я добавил

@synthesize ListingNav; 

Теперь я пытаюсь получить доступ к ListingNav из PropertiesSearchViewController.m следующим образом:

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

Но отладчик показывает:

Использование необъявленного идентификатора PropertiesSearchAppDelegate

Должен ли я импортировать PropertiesSearchAppDelegate.h в PropertiesSearchViewController.h?

Заранее спасибо за вашу помощь

Стефан


person Steve    schedule 05.09.2011    source источник


Ответы (1)


Вам необходимо импортировать PropertiesSearchAppDelegate.h в PropertiesSearchViewController.h.

Чтобы сообщить классу о другом классе, вы должны либо импортировать класс, либо добавить директиву @class. Добавление директивы @class просто позволяет классу узнать о существовании другого класса. В вашем случае вы должны импортировать PropertiesSearchAppDelegate, когда пытаетесь получить доступ к членам класса.

person EmptyStack    schedule 05.09.2011