Strong,cop,week 的使用

使用assign: 对基础数据类型 (NSInteger,CGFloat)和C数据类型(int, float, double, char, 等等)

    使用copy: 对NSString

    使用retain: 对其他NSObject和其子类

强指针Strong:

强指针:strong修饰的属性一般不会自动释放;

在OC中,对象默认是强指针,在实际开放中一般属性对象一般用strong来修饰(NSArray,NSDictionary),在使用懒加载定义控件的时候,一般也用strong

@property (nonatomic, strong) NSArray *dataList;

@property (nonatomic, strong) NSDictionary *Dict;

弱指针Weak:

@property (weak, nonatomic) IBOutlet UILabel *label; Xib拉线就会出来

原因是由于在向 xib 或者 sb 里面添加控件的时候,添加的子视图是添加到了跟视图 View 上面, 而 控制器 Controller 对其根视图 View 默认是强引用的,当我们的子控件添加到 view 上面的时候, self.view addSubView: 这个方法会对添加的控件进行强引用,如果在用 strong 对添加的子控件进行修饰的话,相当于有两条强指针对子控件进行强引用, 为了避免这种情况,所以用 weak 修饰.

1. addSubView 默认对其 subView 进行了强引用

2.在纯手码实现界面布局时,如果通过懒加载处理界面控件,需要使用strong强指针

除此之外,我们在开发的时候用的代理 也是用 weak 进行修饰的,其目的是为了防止控件的循环引用.

@property (nonatomic, weak) id delegate;

Copy的使用

对于 copy 的使用,网上已经有很多关于 copy 介绍, 其包括深 copy 和浅 copy, 在这里我就不再多说了,如果不太明白的话可以网上查一下资料

copy 一般用来修饰 NSString 和 block

@property (nonatomic, copy) NSString *str;

你可能感兴趣的:(Strong,cop,week 的使用)