文MRC/ARC通用的weakify和strongify
来源:互联网 发布:碧然德滤水壶 知乎 编辑:程序博客网 时间:2024/06/11 11:36
/*** 强弱引用转换,用于解决代码块(block)与强引用self之间的循环引用问题* 调用方式: `@weakify_self`实现弱引用转换,`@strongify_self`实现强引用转换** 示例:* @weakify_self* [obj block:^{* @strongify_self* self.property = something;* }];*/#ifndef weakify_self#if __has_feature(objc_arc)#define weakify_self autoreleasepool{} __weak __typeof__(self) weakSelf = self;#else#define weakify_self autoreleasepool{} __block __typeof__(self) blockSelf = self;#endif#endif#ifndef strongify_self#if __has_feature(objc_arc)#define strongify_self try{} @finally{} __typeof__(weakSelf) self = weakSelf;#else#define strongify_self try{} @finally{} __typeof__(blockSelf) self = blockSelf;#endif#endif/*** 强弱引用转换,用于解决代码块(block)与强引用对象之间的循环引用问题* 调用方式: `@weakify(object)`实现弱引用转换,`@strongify(object)`实现强引用转换** 示例:* @weakify(object)* [obj block:^{* @strongify(object)* strong_object = something;* }];*/#ifndef weakify#if __has_feature(objc_arc)#define weakify(object) autoreleasepool{} __weak __typeof__(object) weak##_##object = object;#else#define weakify(object) autoreleasepool{} __block __typeof__(object) block##_##object = object;#endif#endif#ifndef strongify#if __has_feature(objc_arc)#define strongify(object) try{} @finally{} __typeof__(object) strong##_##object = weak##_##object;#else#define strongify(object) try{} @finally{} __typeof__(object) strong##_##object = block##_##object;#endif#endif
参考链接:
https://github.com/PFei-He/PFTabView/blob/master/PFTabView/PFConfigure.h
0 0
- MRC/ARC通用的weakify和strongify
- 文MRC/ARC通用的weakify和strongify
- weakify和strongify
- @weakify和@strongify
- @weakify, @strongify
- @weakify, @strongify
- @weakify, @strongify
- MRC、ARC,MRC和ARC的混编
- MRC和ARC的混编
- mrc 和 arc的转换
- MRC和ARC的兼容
- MRC 和 ARC的区别
- @weakify, @strongify 详解
- @weakify, @strongify 使用
- weakify strongify 实现
- Reactive Cocoa中@weakify和@strongify实现分析
- @strongify以及@weakify宏命令的的使用(1)
- weakify/strongify 大法,的简单宏,抄至于YYKit
- 第十四周 项目2 验证本周视频中所讲过的算法
- 第十五周项目--哈希表及其运算的实现
- 简单快速地理解pagerank
- android(37)(绑定远程服务)
- Golang网络游戏协议处理框架
- 文MRC/ARC通用的weakify和strongify
- Spring连接数据库的几种常用的方式
- OC-005.对象与函数的关系
- 第十五周 项目1 - 验证算法
- 第15周上机实践项目1 - 验证算法(2)
- java.lang.NoSuchMethodError: javax.servlet.jsp.JspFactory.getJspApplicationConte错误
- Linux驱动修炼之道-SPI驱动框架源码分析(中)
- 第十五周项目三~~B-树的基本操作
- 第14周项目1-(2)验证分块查找算法