这应该很简单,但我对此感到头疼。我在app delegate头文件中声明了一个静态变量。类似的东西,
static NSString *baseURL = @"http://www.google.com/";
我在方法中更改了静态变量的值,
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
当我使用AppDelegate文件中的断点观察变量时,我可以看到值已更改。但是,当我从另一个文件(即ViewController)访问静态变量时,我得到旧的值。为什么是这样 ?
有什么办法可以获得新的价值吗?
答案 0 :(得分:4)
如果您要更改值,则不应使用静态。
访问" global"您需要使用的字符串 extern :
appDelegate.h
extern NSString *externString;
appDelegate.m
NSString *externString = @"some value";
您也可以在任何地方更改值。
答案 1 :(得分:2)
我建议你
NSString
文件AppDelegate.h
属性
AppDelegate.m
didFinishLaunchingWithOptions:
内设置您的变量值 AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
appDelegate.baseURL = @"google.com";