我想创建一个全局变量(基本上是一个标志变量),它可以被Objective C中的任何类修改和访问?任何例子都表示赞赏。可以被任何类访问的全局变量
回答
单例模式。
http://www.galloway.me.uk/tutorials/singleton-classes/
始终通过“sharedManager”的消息,这将创建新的对象或给你现有的引用对象。
谢谢Steven。这很有帮助。 – user1140780 2012-03-16 16:44:34
请记住,Objective-C在封面下运行良好的旧“C”。因此,您可以像在C中一样在Objective-C中创建全局变量。
选中此项。在appname.pch文件中导入一些类,比如应用程序委托,因为它很容易从应用程序单例访问。有添加纸条像
#define MY_APP_DELEGATE (((MYAppDelegate *)[UIApplication sharedApplication].delegate))
,并从任何类使用委托变量是这样的:
int val1 = MY_APP_DELEGATE.myvar;
MY_APP_DELEGATE.myvar = 1;
目标C是ANSI C严格的超集,所以用来创建和使用步骤在目标C中可以使用普通的C全局变量。
在任何类接口,方法或子例程范围之外的完全一个.m文件中,声明或实例化全局变量(并在不需要时初始化它以垃圾值开始):
BOOL myGlobalFlag = NO;
为了使这些全局变量很容易找到(您可能需要找到它们,因为使用全局变量被认为会涉及某些类型的错误的风险较高),将它们放在顶部在任何需要包含的文件之后。或者把所有的全局变量放在一个容易找到的中心文件中,比如App Delegate,包含main()的文件或者只包含所有全局变量的文件,比如项目中包含的my_apps_globals.c。
在属于您要访问此变量的任何类,.M,或.c文件至少一个.h文件中,任何类的接口或结构定义之外,声明该变量为外部访问:
extern BOOL myGlobalFlag;
然后在你的应用程序的任何位置使用包含上述任何头文件的任何方法或子例程中的变量。
-(void)dummyMethod {
if (myGlobalFlag) NSLOG(@"the Flag is set!!!");
}
- 1. 全局类访问变量
- 2. 全局变量 - 从视图类访问
- 3. 访问全局变量
- 4. AS3:访问全局变量
- 5. 访问全局变量inPerformed
- 6. 访问全局变量
- 7. 访问全局变量
- 8. JSP访问全局变量
- 9. Javascript全局变量访问
- 10. 脚本任务:编写2个类并访问全局变量
- 11. PHP访问全局变量的问题
- 12. 访问全局变量的问题
- 13. 如何从WebMethod访问全局变量?
- 14. Qt C++创建一个全局变量可访问所有类
- 15. 可以在module.exports模块中访问全局变量吗?
- 16. 如何从类访问“全局”(常量?)capistrano变量? (红宝石)
- 17. 访问全局变量为静态类变量
- 18. 可以在C++的各个类中访问和修改全局变量
- 19. Java中的全局变量,在包中的任何类中都可以访问它
- 20. 全局变量访问问题iphone
- 21. JS - 访问全局变量问题
- 22. 问题访问全局JavaScript变量
- 23. codeigniter,beta项目路径的全局变量,以及从任何地方访问
- 24. 访问PHP全局变量的方法
- 25. 无法访问全局变量的值
- 26. 在函数内部访问被重写的全局变量
- 27. 变量可以被一个类的所有实例访问
- 28. 从AngularJS访问全局变量
- 29. 无法访问全局变量
- 30. 访问全局JavaScript变量反应
你甚至没有考虑过使用谷歌搜索,你呢? – PengOne 2012-03-16 16:15:46
将属性添加到您的应用程序委托。 – Jeremy 2012-03-16 16:16:59
[Objective-C中的全局变量]的可能重复(http://stackoverflow.com/questions/1113980/global-variables-in-objective-c)以及http://stackoverflow.com/questions/5098990/ in-objective-c-how-do-you-declare-use-a-global-variable,http://stackoverflow.com/questions/7081245/global-variables-in-xcode和http://stackoverflow.com/questions/3601341/iphone-global-variable – 2012-03-16 16:38:49