在我的Login.m
文件中,我有
NSString *userName = txtUsername.text; // this is getting the text from the username text field and storing it in userName
问题是我还需要从不同的类访问变量userName,因此我需要将其声明为全局变量。这样做的最佳方式是什么?
答案 0 :(得分:1)
一种选择是使其成为Application Delegate中的实例变量。可以从其他类实例轻松访问Application Delegate。这有点好,因为全局变量不是一个好的设计。
答案 1 :(得分:0)
我要做的是忘记变量,但在这些其他类中引用txtUsername.txt,否则你正在复制你试图保持更新的文本,希望你没有遗漏任何东西
所以在你的.h文件中,你把
{
UITextField *txtUsername;
}
我认为你已经拥有了。
然后:
@property (nonatomic, retain) UITextField *txtUsername;
然后在你的.m文件中,放在@implementation行下面的顶部:
@synthesize txtUsername;
然后在你要引用的.m文件中,转到它的.h文件并输入:
#import "Login.h"
在顶部,与其他导入行。然后把:
{
Login *login;
}
这会创建一个名为login的变量。然后,如果您使用的话,可以将其连接到xib,或者如果不是,则将其连接到代码中。然后,当你想要文本时,你只需输入:
login.txtUsername.text;
答案 2 :(得分:0)
考虑一个singleton
类,它将保存您的全局变量。
要声明单例类,请查看以下示例,或者查看here
+(Constants *) instance {
@synchronized(self) {
if (gInstance == NULL) {
gInstance = [[self alloc] init];
}
}
return gInstance;
}
-(id) init {
if (gInstance != NULL) {
return gInstance;
}
self = [super init];
if (self) {
// do something clever
}
gInstance = self;
return gInstance;
}