从不同的文件中访问静态变量

时间:2014-07-21 10:53:12

标签: ios objective-c

这应该很简单,但我对此感到头疼。我在app delegate头文件中声明了一个静态变量。类似的东西,

static NSString *baseURL = @"http://www.google.com/";

我在方法中更改了静态变量的值,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

当我使用AppDelegate文件中的断点观察变量时,我可以看到值已更改。但是,当我从另一个文件(即ViewController)访问静态变量时,我得到旧的值。为什么是这样 ?

有什么办法可以获得新的价值吗?

2 个答案:

答案 0 :(得分:4)

如果您要更改值,则不应使用静态。

访问" global"您需要使用的字符串 extern

appDelegate.h

extern NSString *externString;


appDelegate.m

NSString *externString = @"some value";

您也可以在任何地方更改值。

答案 1 :(得分:2)

我建议你

  1. NSString文件
  2. 中声明AppDelegate.h属性
  3. AppDelegate.m
  4. 中的合成
  5. didFinishLaunchingWithOptions:内设置您的变量值
  6. 要访问该值,请在整个应用中使用此功能:
  7. AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; appDelegate.baseURL = @"google.com";