我正在开发一个需要不同类访问的变量的游戏。我想知道是否有办法用 Objective C 制作全局可变变量?
问问题
732 次
2 回答
2
在 Objective-C 中创建全局可变变量没有问题。
在头文件中:
extern NSMutableArray *gMyArray;
extern NSMutableDictionary *gMyDictionary;
在您的应用程序委托源文件中:
NSMutableArray *gMyArray;
NSMutableDictionary *gMyDictionary;
在 applicationDidFinishLaunching 中:
gMyArray = [[NSMutableArray alloc] init];
gMyDictionary = [[NSMutableDictionary alloc] init];
然后只需在要访问全局的每个源文件中#import 头文件。
于 2012-05-31T03:01:02.933 回答
2
通常的方法是提供一个单例类,该类提供对所需变量的访问。而不是暴露一个由调用者直接改变的原始变量,你应该真正封装这些操作。拥有真正的全局变量会产生过多的耦合,并且会产生不好的代码气味。
例如,单例可以让你这样写:
[[NetworkTrafficStats instance] addNetworkTraffic:bytes_sent];
这比维护要好得多:
extern unsigned gTotalBytesSent;
//...
gTotalBytesSent += bytes_sent;
值得一读:
于 2012-05-31T03:13:14.690 回答