在目标C中使用和访问全局/外部变量



我知道这个问题已经被问了十亿次了,但我的特定问题还没有得到回答。很抱歉重复。

所以我知道如何声明和定义外部变量(如果我错了,请纠正我):

在foo.h文件中:

extern NSString *foo;

在foo.m文件中:

NSString *foo = @"fooey";

然后说我想访问/更改hoo.m文件中的变量。我该怎么做?

In.h

 @interface SOViewController : UIViewController{
    NSString * variable;
 }

在.m中,您可以将其设置在任何位置。

例如,viewDidLoad。

您也可以在.m文件中声明这一点,方法是放入声明

@interface SOViewController(){
    NSString * variable;
}
  // @property (strong, nonatomic) NSString * myString; might be appropriate here instead
@end

在@实现之前。

不过,理想情况下,由于这是面向对象编程,因此最佳实践是将字符串作为类的属性。

如果你真的对extern关键字很感兴趣,这里有一篇关于如何使用它的stackoverflow文章目标C-如何使用extern变量?

编辑

问题归结为如何传递变量。你可以看看这篇文章如何传递prepareForSegue:一个对象,看看如何使用seguing实现这一点的例子。

最新更新