我知道这个问题已经被问了十亿次,但我的特定问题还没有得到回答。对重复性感到抱歉。
所以我知道如何声明和定义外部变量(如果我错了,请纠正我):
在 foo.h 文件中:
extern NSString *foo;
在 foo.m 文件中:
NSString *foo = @"fooey";
但是然后说我想访问/更改 hoo.m 文件中的变量。我该怎么做?
我知道这个问题已经被问了十亿次,但我的特定问题还没有得到回答。对重复性感到抱歉。
所以我知道如何声明和定义外部变量(如果我错了,请纠正我):
在 foo.h 文件中:
extern NSString *foo;
在 foo.m 文件中:
NSString *foo = @"fooey";
但是然后说我想访问/更改 hoo.m 文件中的变量。我该怎么做?
在.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 帖子Objective C - How to use extern variables?
编辑
问题归结为如何传递变量。您可以查看这篇文章How to pass prepareForSegue: an object查看如何使用 seguing 执行此操作的示例。