从其他类访问变量?

杰克·奥莱里(Jack O'Leery)

我有一个在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中设置的那样。

伊恩·麦克唐纳(Ian MacDonald)

如果创建应用程序委托的新实例,则将无法检索更新的属性值。您只会看到默认值。

相反,您可能要使用分配给应用程序的应用程序委托:

[(AppDelegate *)[[UIApplication sharedApplication] delegate] var1];

旁注:您提供的源代码中似乎有错别字。AppDelegate *getVar * [AppDelegate alloc] init];缺少=[

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章