2012-03-01 3 views
0

Вот мой AppDelegate.h (И я синтезировал эти свойства в Appdelegate.m)Странной ситуация с делегатом

{ 
    NSString *uName; 
    NSDictionary *messagesDict; 
    NSString *serve1r; 
    NSDictionary *firstGet; 
} 
@property (strong, nonatomic) UIWindow *window; 
@property (copy, readwrite) NSString *uName; 
@property (copy, readwrite) NSString *serve1r; 
@property (retain, nonatomic) NSDictionary *firstGet; 

У меня есть Древовидная контроллеры через текстовое поле я ввести некоторое Infos пользователя и хочу поделиться эти объекты (имя пользователя, сервер IP ..) в других контроллерах представления. я Ассинг новые переменные в других классах (SecondVC и ThirdVC), как показано ниже:

MyDelegate *sharedDa= (MyDelegate *)([[UIApplication sharedApplication]delegate]); 

После этого момента, я могу видеть uName во втором классе (журнал его или дисплей на электронной TextField), но я не могу видеть все в третьем классе. Что не так с моим кодом, может ли кто-нибудь помочь?

+0

Например, в FirstVC я установил имя пользователя и сервер как: sharedData.serve1r = _server.text; sharedData.uName = _username.text; но во втором классе я не могу получить значение сервера (я называю их как: [sharedDa uName], [sharedDa serve1r]). Делая это, я могу получить значение _username.text, но _server.text приходит как nil (я имею в виду, [sharedDa serve1r] пуст) –

ответ

0

Вероятно, другой класс фактически не импортируя MyDelegate.h

+0

:) Нет, это не так. Я не хотел путать ум людей с большим количеством кода, но нет никаких проблем с такими вещами. –

+0

И я думаю, что это из-за копирования/чтения/сохранения .. что-то в этом роде. Но я не могу быть уверенным - и не могу точно понять –

1

Это зависит от того, как вы установите эти свойства в контроллерах зрения, поскольку с копией собственности вы будете использовать определенный тип сеттер/геттер. (см. здесь: NSString property: copy or retain?)

Я советую вам использовать (сильный, неатомный), поэтому вы всегда будете держать указатель на один и тот же объект. (если, конечно, и это должно быть - экземпляр appDelegate всегда один и тот же)

Смежные вопросы