ios 不常见关键字

static: 

静态全局变量:使用全局变量的作用域限于当前文件内部,只能内部文件才能访问该全部变量,外部访问不了

静态局部变量:定义在函数体内的,在函数外是不可见的,修饰局部变量保证永远只初始化一遍,在程序的运行中永远一份内存。

例:

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

   int i= 0 ;
    i ++ ;
    NSLog(@"---------%ld",i);   
}
//不用status修饰的话,永远只会打印1,因为每次点击都会重新初始化一个全新的变量使得i = 0;
//自加之后就会打印结果为1.
//但是如果使用status修饰局部变量i的话,就会让局部变量永远只初始化一次,一份内存。故每点击一次都会i自加1。

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    
    static int i= 0 ;
    i ++ ;
    NSLog(@"---------%ld",i);
}

 extern:

是一个全局变量,先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找。

这个单词翻译过来是“外面的、外部的”。顾名思义,它的作用是声明外部全局变量。这里需要特别注意extern只能声明,不能用于实现,而且定义和分配内存都在原来类中。

UIKIT_EXTERN:

就是将函数修饰为兼容以往C编译方式的、具有extern属性(文件外可见性)、public修饰的方法或变量库外仍可见的属性

BOOL

BOOL类型的变量 是1个有符号的char变量.它使用8位的存储空间

typedef signedchar BOOL;

#define YES (BOOL)1

#define NO (BOOL)0

Boolean

typedef unsigned char Boolean;

enumDYLD_BOOL {FALSE,TRUE };

bool

C99标准定义了一个新的关键字_Bool,提供了布尔类型

#define bool _Bool

#define true 1  

#define false 0

bool 是int型,bool b 当b!=0 有 b=true

BOOL 是signed char型,BOOL b 当b=1 有 b=YES

Boolean 是char型

nil

nil是指一个不存在的OC对象指针,OC对象指针的空值。NSObject *object = nil;

Nil

Nil是指一个不存在的OC类指针,OC类指针的空值。因为大部分代码中不需要引用class变量,所以Nil并不常用。

Class class = Nil;

NULL

NULL是指C指针的空值。int *point = NULL;

NSNull

NSNull是用于表示空值对象的类。

NSNull经常用于NSArray、NSDictionary等,因为它们不能存储nil值,所以使用NSNull来代替nil。

nil == Nil == Null 所以它们在object-c中是可以通用的。都表示空对象的意思。

[NSNull null]是值为空的对象,和nil、Nil、Null是不等价的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值