iOS 常用关键字

1、static关键字的作用:

static修饰的变量,程序只会为这个变量分配一次内存,当该变量受到修改时,在其作用域内,都是共享的。

2、const关键字

const int a; 和 int const a;    ->a 表示常整型数

const int *a; -> 换种方式方便理解(const int) *a; *a指针代表指向常整型数的指针,常整型数不允许修改,但是指向常整型数的指针允许修改

int const *a;  -> int (const *a); const修饰*a指针,代表指针不允许修改

int const *a const; -> (int const) (*a const);常整型数常指针,都允许修改

3、nonatomic 和 atomic关键字

nonnatomic表示属性为非原子属性,对属性赋值时,不加锁,多线程操作时,提高访问性能的同时,不能保证多线程情况下属性值获取的正确性

atomic表示属性为原子属性,@property默认情况下为atomic属性,多线程情况下,atomic修饰的属性的setter和getter方法在收到访问时,在一条线程访问该方法时,系统会给该方法加锁,阻止其他的访问。开发iOS程序时一般都会使用 nonatomic 属性。但是在开发 Mac OS X 程序时,使用 atomic 属性通常都不会有性能瓶颈

4、内存管理的关键字strong、weak、copy、assign

strong: ARC环境下等同于retain,声明属性的默认关键字。(浅拷贝,只拷贝指针)

weak:对象销毁后会自动置为nil,防止野指针,定义的是一种“非拥有关系”,设置新值时,设置方法既不保留新值,也不释放旧值。必须修饰OC对象

copy:深拷贝,拷贝内容,复制出一份不可变的内容,可以用来修饰string,array,dictionary等具有可变类型的对象,防止数据传递过程中被修改。block使用copy修饰,是MRC时,block是在栈中,使用copy能将block放到堆里,ARC中,使用copy和strong是一样的,但是推荐使用copy

assign:一般用来修饰iOS基础数据类型和c语言数据类型,可以修饰非OC对象

5、IBInspectable关键字

可通过IBInspectable关键字为storyboard和xib的属性面板中添加自己定制的属性

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容