全局变量的使用

在iPhone开发中,使用全局变量有这么几种实现方法:

1、在AppDelegate中声明并初始化全局变量

然后在需要使用该变量的地方插入如下的代码:

//取得AppDelegate,在iOS中,AppDelegat被设计成了单例模式

xxxAppDelegate *appDelegate = [[UIApplication sharedApplication]
delegate];
appDelegate.Your Variable

2、使用 extern 关键字

2.1
新建Constants.h文件(文件名根据需要自己取),用于存放全局变量;

2.2
在Constants.h中写入你需要的全局变量名,例如:

NSString *url;//指针类型
         
        int count;//非指针类型

注意:在定义全局变量的时候不能初始化,否则会报错!

2.3 
在需要用到全局变量的文件中引入此文件:

#import "Constants.h"

2.4 给全局变量初始化或者赋值:

extern NSString *url;

url =
[[NSString alloc] initWithFormat:@"http://www.google.com"];//指针类型;需要alloc

extern int count;

count =
0;//非指针类型

2.5 
使用全局变量:和使用普通变量一样使用。

3、单例的全局访问方法:

@interface MySingleton :
NSObject
{
?①    NSString *testGlobal;
}

+
(MySingleton *)sharedSingleton; 
?②@property
(nonxxxx,retain) NSString *testGlobal;

@end

@implementation
MySingleton 
?③@synthesize testGlobal;

+
(MySingleton *)sharedSingleton 
{
  static
MySingleton
*sharedSingleton;

  @synchronized(self)
  {
    if
(!sharedSingleton)
      sharedSingleton =
[[MySingleton alloc] init];

    return
sharedSingleton;
  }
}

@end 

把①、②、③的地方换成你想要的东西,
使用例:
[MySingleton
sharedSingleton].testGlobal = @"test";


全局变量的使用,码迷,mamicode.com

时间: 2024-10-12 08:56:17

全局变量的使用的相关文章

Python之路18-函数作用域、全局变量、局部变量

#全局变量 school = 'lianhedaxue' def test(name):     #强制修改全局变量     global school     school = 'haha'     print ('before change',name,school)     name = 'Jack'   #这个函数就是这个变量的作用域     print ('after change',name) name = 'Tom' test(name) print (name) print (s

全局变量导致所有命令都执行不了。

在配置MySQL时,做了个全局变量,少打了个"$"符号,导致所有命令都执行不了. 一开始我一直琢磨不出来为什么所有命令都执行不了. 如图: 要加个"$" 请用,命令全路径编辑/etc/profile: 输入: /usr/bin/vim /etc/profile 注意vim后有空格 然后将原来修改的内容删除 重新启动.shutdown -r now 或者reboot

C语言之全局变量和局部变量

全局变量和局部变量的简介(tips:很重要 牢记) 全局变量:就是定义在函数外的变量 全局变量可以在任意函数中使用 生命周期:程序一启动就开辟空间,直到程序退出才回收 全局变量不允许同名 局部变量:就是定义在函数内的变量 局部变量只能在它声明的位置开始到它所在的代码块结束 生命周期:它所在的代码块结束就回收 不同的作用域里,局部变量可以同名 tips:代码例子如下 #include <stdio.h> int globeNum = 10;   //全局变量 void test1(){ prin

全局变量的危害

今日饱受一个全局变量的危害,导致多个项目出现问题,揪其根本原因是,全局变量的危害导致的.这里转载一篇关于全局变量危害的代码:工作也有些年头了,从一位技术新人成长到现在自诩小牛级别的人物,少不了要自己寻找资料阅读.论坛上.书店里.杂志上......要嘛是些菜鸟浅薄的自炫处女贴,要嘛是高屋建瓴云里来雾里去的概念文,好不容易遇到个实践型高手写的文章,却在渐入佳境之际嘎然而止.本是隔靴搔痒,看完后心中更是郁结不已.也罢,今日且强装回大牛,献丑谈一谈嵌入式C编程中全局变量问题.嵌入式特别是单片机os-le

线程间通信 1全局变量2当前主对话框指针3发消息方式4 AfxBeginThread的返回值(为CWinThread类型的指针)5AfxGetApp

①.最常用的方式:全局变量或者多个线程都能看到的一个东东 1.全局变量方式: int g_Num = 100; UINT __cdecl ThreadWriteProc(LPVOID lpParameter) { while(TRUE) { ++g_Num; Sleep(50); } return 100; } UINT __cdecl ThreadReadProc(LPVOID lpParameter) { CString strTipMsg; while(TRUE) { strTipMsg.

c语言全局变量和局部变量问题汇总

1.局部变量是否能和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,须要使用"::" 局部变量能够与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量.对于有些编译器而言,在同一个函数内能够定义多个同名的局部变量,比方在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内. 2.怎样引用一个已经定义过的全局变量? 答:extern 能够用引用头文件的方式,也能够用externkeyword,假设用引用头文件方式来引用某个在头文件

Objctive-C 全局变量

一,全局变量 1,在m文件中的所有方法,类定义和函数定义之外 例:Square.m中定义一个全局变量 , 在main.m中引用 Square.m代码如下: // //  Square.m //  Square // //  Created by Apple on 2017/9/9. //  Copyright  2017年 Apple. All rights reserved. // #import "Square.h" int global_val = 20;//定义一个全局变量 @

局部变量,全局变量,extend,static

main.c #include <stdio.h> #include "zs.h" /* 局部变量是定义在函数.代码块.函数形参列表.存储在栈中,从定义的那一行开始作用域结束释放. 全局变量:写在函数,代码块,形参列表外的变量,从定义的那一行开始一直直到文件末尾(暂时这样认为),全局变量如果没有进行初始化是0,存储在静态区中, 随着程序的结束而结束. */ /* 全局变量分为两种: 1.外部全局变量: 可以被其它文件访问的全局变量我们称之为外部全局变量(默认情况下所有的全局

JavaSCript全局变量与局部变量

今天公司一个实习小妹子问我两段js代码的区别: [javascript] view plain copy <script type="text/javascript"> var a = "Hello"; function test(){ var a; alert(a); a = "World"; alert(a); } </script> [javascript] view plain copy <script ty

opencv如何实现【不用全局变量进行滚动条控制】

opencv中自带滚动条,其中一个问题是该回调函数(on_trackbar)大多使用的是全局变量,大型项目调试时弊端众多,比如下图: 为此,留意了void on_Trackbar(int par1, void *)中的第二个参数, 按理说,这是允许用户传递参数进入的,但网上及书籍中未找到不用全局变量而自己传参数的例子,因此特意写了一版可以自己传局部参数的写法. 代码如下: #include <opencv2/opencv.hpp> using namespace cv; namespace y