实现全局常量/变量

1 篇文章 0 订阅
1 篇文章 0 订阅

1.宏,不要使用,它只是一个预处理命令,可以重复定义的

#define name @"string"
#define name @"aaa"

Xcode会出现提示

'name' macro redefined

它的值永远是最后一次赋值的结果

2.全局常量

在@implementation外定义

NSString * const str = @"string1";

3.全局变量

(1).extern
在ViewController.h中声明

//声明
extern const NSString *extraString;

extern修饰,意味着该变量可扩展
在使用时,定义同名变量即可得到它的值

//使用时,定义同名变量
const NSString *extraString;

(2).static

在OC文件ViewController.h或.m中定义一个变量

//变量
static NSString * staticString = @"This is static string";
//类方法,用于获取变量
+(NSString *)getStaticString;
//实现
+(NSString *)getStaticString{
    return staticString;
}

OC中static修饰的变量和JAVA中的静态变量是一样的,只是OC中无法通过类名直接访问变量,我们定义类方法就可以了

//使用
NSString * a = [ViewController getStaticString];

注:
你可能注意到 全局变量和常量里 const 放的位置不同,这里区分一下:

//第一种,这里const修饰的是指针,所以指针本身是不会变的,指向的地址可以变,即 常量指针;所有说要全局变量就找你了,相当于固定的盒子,合适的就放里面
const NSString * str = @"aaa";

//第二种,这个和第一种不是一样的意思嘛
NSString const *str = @"bbb";

//第三种,这里就不一样了,人家是指针常量,值不能变,所以有做全局常量的潜质
NSString * const str = @"ccc";
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值