Доступ к приложению делегировать информацию из другого файла .xib - PullRequest
0 голосов
/ 10 февраля 2012

У меня есть один файл .xib с делегатом приложения.В этом делегате приложения у меня есть определенные экземпляры переменных:

//The model objects
NSString* _stringWord;
NSMutableArray *_images;
int _numberOfWordsTotal;
int _numberOfWords;

, которые обычно объявляются как свойства:

@property (nonatomic, copy) NSString * stringWord;
@property (nonatomic) int numberOfWordsTotal;
@property (nonatomic) int numberOfWords;
@property (nonatomic, copy) NSMutableArray * images;

И синтезируются в файле .m

@synthesize stringWord = _stringWord;
@synthesize images = _images;
@synthesize numberOfWordsTotal = _numberOfWordsTotal;
@synthesize numberOfWords = _numberOfWords;

В App Delegate я выполняю некоторые операции с этими переменными.Более конкретно, я назначаю некоторые изображения переменной _images.Информация правильно хранится, согласно отладчику.

В другом файле .xib я хочу получить доступ к содержимому этого делегата.Поэтому моя идея - получить доступ ко всему делегату с помощью этой функции:

Visual_PoetryAppDelegate *delegate = [[UIApplication sharedApplication] delegate];

Я вижу, что создается экземпляр переменной делегата, включая доступ ко всем переменным.Однако, когда дело доходит до них, переменные пусты (значение, сгенерированное в предыдущем .xib, похоже, не сохраняется).

Есть идеи или предложения?Есть ли лучший способ получить доступ к предыдущему делегату из другого файла .xib?

Ответы [ 2 ]

3 голосов
/ 10 февраля 2012

Делегат приложения не является центральным местом хранения глобальных переменных. Переместите эти данные в объект одноэлементной модели (по внешнему виду это будет что-то вроде Poem). Вы можете получить доступ к [Poem sharedPoem] из любого объекта, который в этом нуждается. Кроме того, вы можете создать экземпляр одного объекта Poem в делегате приложения и передать его различным контроллерам представления, которые в нем нуждаются. У каждого подхода есть свои преимущества.

См. Следующие вопросы для более подробного обсуждения правильного использования делегата приложения и объектов модели:

1 голос
/ 10 февраля 2012

Изменить копию, чтобы сохранить

@property (nonatomic, retain) NSString * stringWord;
@property (nonatomic) int numberOfWordsTotal;
@property (nonatomic) int numberOfWords;
@property (nonatomic, retain) NSMutableArray * images;
...