关键字介绍
在做iOS开发中,系统的各个关键字处处都是,但是未必每一个关键字都是那么的明白,所以罗列出一些关键字供大家互相学习,有不完善之处请指正,谢谢
atomic | atomic是Objc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。 |
super | 调用父类的方法 |
readonly | 说明属性是只读的,默认的标记是读写 |
readwrite | 说明属性会被当成读写的,这也是默认属性 |
retain | 释放旧的对象,将旧对象的值赋予输入对象,再提高输入对象的索引计数为1 |
self | 是隐藏参数,指向当前调用方法的类 |
setter | 设置指定的set方法 |
getter | 设置指定的get方法 |
property | 设置成员变量的属性(有读/写,赋值assign,retain,copy ,以及对多线程的支持nonatomic) |
end | 类的头文件或者实现文件的结束 |
copy | 建立一个索引计数为1的对象,然后释放旧对象 |
assign | 简单赋值,不更改引用计数 |
synthesize | 根据@property设置,自动生成成员变量相应的存取方法,从而可以使用点操作符来方便的存取该成员变量 |
import | 告诉预处理器,将头文件的内容包含到本文件中 |
dynamic | 告诉编译器由我们自己来实现访问方法 |
nonatomic | 非原子性访问,对属性赋值的时候不加锁,多线程并发访问会提高性能 |
implementation | 表明类的实现 |
strong | 强引用,只要最后一个strong型指针不再指向对象,那么对象就会被释放,同时所有的weak型指针都将会被清除 |
weak | 弱引用 |
__strong | 是缺省的关键词 |
__weak | 声明了一个可以自动nil化的弱引用 |
__unsafe_unretained | 声明一个弱应用,但是不会自动nil化,也就是说,如果所指向的内存区域被释放了,这个指针就是一个野指针了 |
__autoreleasing | 用来修饰一个函数的参数,这个参数会在函数返回的时候被自动释放 |
unsafe_unretained | 弱引用,容易生成野指针,尽量少用unsafe_unretained关键字 |
synchronized | 方法加锁 |