@property关键字:相当于自动为类定义了实例变量,同时设置了setter方法和getter方法
//如果是旧版本的Xcode需要在实现部分写@sythesize
//接口部分
#import <Foundation/Foundation.h>
@interface Car : NSObject{
<span style="white-space:pre"> </span>//NSString *_brand;
}
@property (nonatomic,retain,readwrite) NSString *brand;//括号内的是描述符号
//-(void)setCar:(NSString *)brand;
//-(NSString *)brand;
@end
atomic:
1)每一个操作都是原子操作(相当于一条完整的汇编语句),不可打断
2)线程保护
nonatomic:表示不涉及线程
assign:只是赋值,没有引用计数,用于基本类型的变量
retain:引用计数
copy:给对象赋值的时候,是把变量复制,然后给对象赋值。这样,当修改变量的值的时候,由于只涉及底层,不会影响对象的值
readwrite :同时生成setter和getter方法
readonly :只是生成getter方法,需要自己去写setter方法
手动内存管理:MRC
强引用:copy mutableCopy
弱引用:retain
自动内存管理:ARC
强引用:strong
弱引用:weak