您的位置:首页 > 移动开发 > IOS开发

iOS之__block和__weak使用

2015-12-07 10:17 344 查看
__block 为了改变block代码块外部的变量。例如:你在外面定义了一个整形变量,想要在block块内改变它,那么,就要用__block 来修饰这个整形变量。

__weak 是为了防止循环引用(memory cycle),引起内存泄露的问题。

__weak不增加引用,__block增加引用

举例:某对象self,有strong类型的成员变量blockA,blockA内部引用了self,如果self不经过__weak处理,就会变成:

self强引用blockA,blockA强引用self,这就是循环引用。

@property 中 strong weak copy 意义及使用上区别

@property (nonatomic, copy) NSString *message;

@property (nonatomic, strong) NSString *message;

strong、weak 需要ARC支持才能使用,copy不需要ARC支持;

Strong和copy是用来修饰强引用的属性,weak 用来修饰弱引用的属性;

strong所声明的变量将成为对象的持有者;

weak 所声明的变量将没有对象的所有权,对象可以自动赋值nil;

copy 所声明的变量是拷贝对象的持有者。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: