block __weak __strong
来源:互联网 发布:患难见真情dj网络歌手 编辑:程序博客网 时间:2024/04/29 13:30
block定义:
typedef void(^ myBlock)(nsstring* strx);
#...
@property(nonatomic,copy)myBlock mBlock;
__weak的使用
当需要在block中引用本类的方法、变量的时候需要用__weak typeof(self) weakself = self;
目的:防止循环引用
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[weakSelf doSomething];
});
__strong的使用
当需要在block中多处引用到自身时(调用多个方法时),需要用__strong typeof(self) strongSelf = self;
目的:防止在方法中释放weak 的self,导致self = nil;
__weak typeof(self) weakSelf = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
__strong typeof(self) strongSelf = weakSelf;
[strongSelf doSomething];
[strongSelf doOtherThing];
});
__block的使用
当需要在block中用到局部变量的时候,需要用__block修饰,可以修改和使用局部变量。
- block __weak __strong
- 正确使用Block __weak __strong
- __weak __strong 在block中的作用
- __weak, __strong
- __weak & __strong
- block 使用__weak 和__strong修饰符问题
- block 中使用__weak 和__strong修饰符的问题
- block 中使用__weak 和__strong修饰符的问题
- __weak修饰后再block中使用__strong修饰问题
- iOS中__weak 和 __Strong
- __strong、__weak、__unsafe_unretained和__autoreleasing修饰符
- ios 比较__unsafe_unretain、__strong、__weak、__autoreleasing
- __weak 与__strong的理解与应用
- iOS之__block、__strong和__weak使用
- iOS开发 ☞ __block,__weak,__strong
- oc __weak和__strong的区别
- block __weak & strong self
- iOS 高级内存管理:比较__unsafe_unretain、__strong、__weak、__autoreleasing
- init.d 服务启动脚本编写(shadowsocks)
- ecshop 筛选属性--在分类页显示并搜索
- 移除HTML5 input在type="number"时的上下小箭头
- Android动画框架示例
- crack me160题 第八题(序号33) Cruehead.1 注册机
- block __weak __strong
- SurfaceView使用详解
- java序列化/反序列化之xstream、protobuf、protostuff 的比较与使用例子
- C#消除多层if-else嵌套
- 自定义相册选中图片
- Java GC 垃圾回收机制与内存分配策略
- memcached+session+manager session过期时不触发sessionDestory
- Oracle中使用批处理文件批量建表
- 从零开始-MultiDex于大堆内存