与代表的奇怪情况

时间:2012-03-01 13:20:32

标签: objective-c ios delegates

这是我的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;

我有树视图控制器,通过文本字段输入一些用户信息,并希望在其他视图控制器中共享这些对象(用户名,服务器IP ..)。 我在其他类(SecondVC和ThirdVC)中分配新变量,如下所示:

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

在这一点之后,我可以看到第二个类中的uName(记录它或显示在电子文本字段中),但我看不到第三个类中的任何内容。我的代码有什么问题可以帮到谁?

2 个答案:

答案 0 :(得分:1)

这取决于您在视图控制器中设置此属性的方式,因为使用copy属性时,您将使用特定类型的setter / getter。 (见这里:NSString property: copy or retain?

我建议您使用(强,非原子),因此您将始终保留指向同一对象的指针。 (当然,如果 - 应该是 - appDelegate实例总是相同的)

答案 1 :(得分:0)

可能另一个类实际上并未导入MyDelegate.h