У меня есть некоторый класс, инициализированный в Appdelegate, но когда я получаю эту форму экземпляра класса Appdelegate в другом классе, он имеет "свежее" состояние.
У меня есть следующее в AppDelegate:
Интерфейс:
@property (nonatomic, retain) DataController *dataController;
Реализация:
@synthesize dataController;
- (id)init {
if (self = [super init]) {
DataController *controller = [[DataController alloc] init];
self.dataController = controller;
[controller release];
NSLog(@"items: %d",[self.dataController numberOfItems]);
}
return self;
}
В этот момент класс DataControlelr загружает объекты из базы данных. Выходные данные журнала показывают "items: 10".
У меня есть TableViewController, где мне нужно использовать DataController.
Заголовок TableViewController:
@interface TableViewController : UITableViewController {
DataController *dataController;
}
@property (retain) DataController *dataController;
@end
Реализация:
-(id)init{
if (self =[super init]) {
DataController *dc =[(AppDelegate *)[[UIApplication sharedApplication] delegate] dataController];
[dc retain];
dataController = dc;
NSLog(@"items: %d",[self.dataController numberOfItems]);
}
return self;
}
Здесь всегда говорится, что DataController имеет 0 элементов. "свежее" состояние.
Выход журнала всегда
предметов: 10
предметов: 0
Кажется, что присвоение этого класса создает ссылку на только что инициализированный DataController?
Как правильно ссылаться на другой класс?
Спасибо.