iOS Appdelegate字段填充和对象创建

时间:2016-09-05 13:27:08

标签: objective-c appdelegate

我是iOS的新手,并试图围绕Appdelegate回调和现场人口的功能。

所以,我正在做的事情: 在Appdelegate的标题中声明全局属性

@property NSString* GlobalUsername;

在回调的一个开头

中填充此属性的值
- (void)applicationDidBecomeActive:(UIApplication *)application {

            _GlobalUsername = @"username";

}

现在,在ViewControler的按钮单击方法中,我创建了一个AppDelegate对象,访问GlobalUsername并使用textView在屏幕上显示它。

- (IBAction)ShowDetails:(id)sender
{
    AppDelegate *appdelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;


    NSString* details=[NSString stringWithFormat:@"Username is : %@",appdelegate.GlobalUsername];
[_textView setText:details];

}

现在我不明白的是,GlobalUsername的值是如何与AppDelegate的对象相关联的。当应用程序变为活动时填充了GlobalUsername,而不是在我创建Appdelegate的实例时填充,那么sharedApplication方法返回的对象如何将这些信息封装在其中?

1 个答案:

答案 0 :(得分:1)

delegate的{​​p> UIApplication根据单身模式运作。每次尝试获取它时只有一个实例。例如:

[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
...Any API requests...
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];

如果UIApplication的代表每次都不会保存网络指示器的状态,那么它就会有所不同。