我是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方法返回的对象如何将这些信息封装在其中?
答案 0 :(得分:1)
delegate
的{p> UIApplication
根据单身模式运作。每次尝试获取它时只有一个实例。例如:
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
...Any API requests...
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
如果UIApplication的代表每次都不会保存网络指示器的状态,那么它就会有所不同。