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 所声明的变量是拷贝对象的持有者。
__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 所声明的变量是拷贝对象的持有者。
相关文章推荐
- iOS 21种设计模式之抽象工厂(Abstract Factory)
- iOS开发之多线程基础
- iOS开发之如何跳到系统设置里的WiFi界面
- iOS沙盒的文件操作
- iOS XCode 不同版本 等开发工具下载
- ios工程图片资源注意点
- IOS开发之启动画面延时
- Vickate_iOS内存与性能优化(随笔)
- IOS开发之协议 代理
- iOS开发-进阶:NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象
- iOS开发-工具:CocoaPods使用详细说明
- iOS开发-工具:Xcode7中添加pch文件
- iOS 远程推送消息时运行在前台怎么处理
- 百度云推送的iOS证书配置
- 百度云推送没有收到消息怎么破 iOS
- iOS中tableView
- iOS_block内存分析
- iOS_ @property参数分析
- iOS-设计模式之Block
- xode7--iOS9免费真机调试问题