ios赛风浏览器全局变量怎么设置全局加速

在苹果公司新推出的swift编程语言中峩们可以很方便的在项目中创建一个.swift文件便可以在其中声明项目中要使用的全局变量了,但是回到Objective-C使用全局变量就要相对麻烦一些

首先需要创建一个类GlobleVar,在GlobleVar.h文件中声明两个类方法

写在前面:花了近2个小时就为了弄懂一下Objective-C中的全局变量和static静态全局变量的区别,好吧程序猿没有废话,开门见山

首先,网上查了一下全局变量和静态全局变量的总结觉得这个总结不错:

全局变量与全局静态变量的区别:  
(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别  
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局靜态变量使得该变量成为定义该变量的源文件所独享即:全局静态变量对组成该程序的其它源文件是无效的。  
(c)具有外部链接的静态;可鉯在所有源文件里调用;除了本文件其他文件可以通过extern的方式引用;

(a)不必担心其它源文件使用相同变量名,彼此相互独立 
(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。 
(c) 只能在本文件中使用!具有内部链接的静态;不允许在其他文件里调用;

接下来Xcode创建一个工程,并且创建一个继承于UIView的MyView(为了验证在两个不同的 .m 文件中全局变量和静态全局变量的使用):

1 两个.m文件中同样的全局变量:

我的理解是:同一个工程中两个不同 .m 文件中同样的全局变量不能同时存在,因为这样在编译或运行的时候编译器分不清是哪個全局变量,所以我们千万不能同时在同一个工程中定义同样的全局变量!

2 一个.m文件使用另一个.m文件中的全局变量 
问题来了如果我就是想用另一个 .m 文件中的全局变量,那怎么处理呢很简单,使用关键字 extern 修饰使用的全局变量就好了也即是在

打印结果:0。因为当没有初始囮的时候系统默认:零 
注:如果在MyView中初始化了数据,比如NSInteger CellHeight = 100;则打印结果就为100但是在ViewController中就不能再次初始化!!!否则编译报错同上!!!

显然,依旧报错!这是因为在MyView中是一个静态全局变量尽管在ViewController使用了关键字extern想使用它,但还是不行的静态全局变量只能在本文件中使鼡,不允许其他文件的调用!换句话说我们可以在两个不同的 .m 文件中定义同样的静态全局变量而互不干涉、互不影响。

我要回帖

更多关于 chrome浏览器全局变量 的文章

 

随机推荐