Странная ситуация с делегатом - PullRequest
0 голосов
/ 01 марта 2012

Вот мой 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;

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

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

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

Ответы [ 2 ]

1 голос
/ 01 марта 2012

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

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

0 голосов
/ 01 марта 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...