全局变量读/写访问

时间:2011-03-26 11:34:55

标签: iphone objective-c ios4

我需要在所有视图中访问(读/写)一些变量。

变量将在视图1中定义,然后在视图2中使用并设置为新值。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

雅,有一个简单的方法可以解决这个问题.....

您可以采用全局变量

在Delegate.h文件中声明您的变量:

@interface Smoke_ApplicationAppDelegate : NSObject {

UIWindow *window;
UINavigationController *navigationController;
NSString *messageString;  //This would be your String Variable
} @property(nonatomic,retain)NSString *messageString;

其次在Delegate.m文件中

@implementation Smoke_ApplicationAppDelegate

@synthesize window; @synthesize navigationController; @synthesize messageString; // 

在这里合成它..

这是完成。现在你可以在你想要的所有/任何类中使用这个字符串变量..

使用此全局变量。

只需导入你委托文件制作它的对象....

import "DelegateFile.h"

@implementation About

DelegateFile *appDel;

现在在你的class.m

-(void)viewDidLoad { [super viewDidLoad];

appDel=[[UIApplication sharedApplication]delegate];

}

现在,您可以通过此对象访问类中的任何位置:

appDel.messageString

小心地按照我的步骤在给予我的手指这么大的痛苦之后,我相信这肯定会帮助你......

过上轻松的生活,

答案 1 :(得分:0)

请不要在应用程序委托中将它们声明为实例变量,这对MVC来说不是很好的设计实践。

您最好的选择是创建共享数据模型。这可以是所谓的“单例”类,因此它只有每一个实例。然后,此模型类可以存储各种视图所需的任何中心信息。

Rob Napier的回答over here与该页面的其他链接一样,是一个很好的参考。特别是我赞扬Mike Ash's post here

'单身人士'很棒。它们将数据封装在它所属的模型类中,避免了蠕变的全局变量,这使得代码在将来不易分离。