Cocoa xcode 4.3 全局变量
Posted
技术标签:
【中文标题】Cocoa xcode 4.3 全局变量【英文标题】:Cocoa xcode 4.3 global variables 【发布时间】:2012-08-07 13:06:39 【问题描述】:我正在使用全局变量从一个视图控制器访问值到另一个,我面临的问题是在 viewdidload 下调用全局变量它将返回 null,但如果我在 (ibaction) 下使用全局变量它可以正常工作。
【问题讨论】:
您是否尝试从 ViewDidAppear 访问它? @Jayashankar,感谢 ViewDidAppear 提供的提示 【参考方案1】:问题很可能与求值顺序有关:在viewDidLoad:
时,有问题的变量尚未初始化,但在执行操作时,初始化已完成。
您可以尝试通过从发生在viewDidLoad:
之后的另一个回调访问您的全局来调整时间,但要完全避免这个问题,您可以使用全局单例而不是全局变量。创建一个单独的类,在其中保留全局状态,在需要使用它的地方包含其标题,并调用其类方法来访问全局变量,如下所示:
标题:
@interface Globals
+(MyGlobal*)global;
@end
实施:
@implementation Globals
+(MyGlobal*)global
static MyGlobal* _global;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^
_global = [[MyGlobal alloc] init];
);
return _global;
@end
用法:
MyGlobal *g = [Globals global];
【讨论】:
以上是关于Cocoa xcode 4.3 全局变量的主要内容,如果未能解决你的问题,请参考以下文章