如果是继承某个类,就要导入类的头文件
如果只是定义成员变量、属性,@class
通常引入一个类的方法有两种:#import 包含引用类的所有信息,包括被引入类的变量和方法;头文件@class只是告诉我们编译器,这个只是一个类.
等到真正要用的类的方法和变量,就用import. 不仅仅知道他是一个类,同时也要使用他的方法
import的文件修改,导入头文件的,全部重新编译。
//这retaind代表:release释放旧值;retain 增加新值。
@property (retain) Book *book;
自动帮助我们生成内存释放代码。
@property (参数1,参数2);
1、读写属性:readwrite/readonly 只读readonly(get方法)不可以用set方法
默认是readwrite;可读可写,同时生车get和set方法。
2、setter处理:assign/retain/copy
retain 系统自动帮助管理内存资源
copy:setter方法release旧值,在copy新值。
3、原子性:atomic/nonatomic
atomic是指明:提供多线程安全加锁(同时访问一个变量或者两个线程同时调用一个方法)耗费系统资源,影响性能。
在iphone这种小型设备上,如果没有使用多线程间的通讯变成,那么nonatomic是一个非常好的选择。
如果不需要多线成支持的话,用nonatomic就够了,另外由于不涉及锁操作,所以它执行相对快一点。
@property BOOL rich;
@property (nonatomic, getter = isRich) BOOL rich;
//getter是用来指定get方法的方法名