我有一个在AppDelegate中设置的变量(var1)。我还有另一个类MyClass,我想从AppDelegate检索变量。我可以很好地设置MyClass中定义的变量(var2):
AppDelegate:
- (void)setVariable {
var1 = @"TEST";
MyClass *setVar = [[MyClass alloc] init];
setVar.var2 = var1;
NSLog(@"var2: %@",setVar.var2); // Outputs TEST
}
当我尝试在MyClass中获取变量时,它为Null:
我的课
- (void)getVariable {
AppDelegate *getVar = [[AppDelegate alloc] init];
var2 = getVar.var1;
NSLog(@"var2: %@",var2); // Outputs NULL
}
如果我还包括它,它将起作用,[getVar setVariable];
但这并不是我想要的,因为它将变量设置为静态值。我正在尝试获取变量,如之前在AppDelegate中设置的那样。
如果创建应用程序委托的新实例,则将无法检索更新的属性值。您只会看到默认值。
相反,您可能要使用分配给应用程序的应用程序委托:
[(AppDelegate *)[[UIApplication sharedApplication] delegate] var1];
旁注:您提供的源代码中似乎有错别字。AppDelegate *getVar * [AppDelegate alloc] init];
缺少=
和[
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句