zoukankan
html css js c++ java
ARC专题:编写兼容ARC(自动引用计数) 和 nonARC(非自动引用计数)的通用代码
下面这段宏可以解决这个问题,而不用同时编写2套代码
写法用传统的non-ARC写法
http://raptureinvenice.com/arc-support-without-branches/
// // ARCMacros.h // InnerBand // // For an explanation of why these work, see: // // http://raptureinvenice.com/arc-support-without-branches/ // // Created by John Blanco on 1/28/12. // Rapture In Venice releases all rights to this code. Feel free use and/or copy it openly and freely! // // NOTE: __bridge_tranfer is not included here because releasing would be inconsistent. // Avoid it unless you're using ARC exclusively or managing it with __has_feature(objc_arc). // #if !defined(__clang__) || __clang_major__ < 3 #ifndef __bridge #define __bridge #endif #ifndef __bridge_retain #define __bridge_retain #endif #ifndef __bridge_retained #define __bridge_retained #endif #ifndef __autoreleasing #define __autoreleasing #endif #ifndef __strong #define __strong #endif #ifndef __unsafe_unretained #define __unsafe_unretained #endif #ifndef __weak #define __weak #endif #endif #if __has_feature(objc_arc) #define SAFE_ARC_PROP_RETAIN strong #define SAFE_ARC_RETAIN(x) (x) #define SAFE_ARC_RELEASE(x) #define SAFE_ARC_AUTORELEASE(x) (x) #define SAFE_ARC_BLOCK_COPY(x) (x) #define SAFE_ARC_BLOCK_RELEASE(x) #define SAFE_ARC_SUPER_DEALLOC() #define SAFE_ARC_AUTORELEASE_POOL_START() @autoreleasepool { #define SAFE_ARC_AUTORELEASE_POOL_END() } #else #define SAFE_ARC_PROP_RETAIN retain #define SAFE_ARC_RETAIN(x) ([(x) retain]) #define SAFE_ARC_RELEASE(x) ([(x) release]) #define SAFE_ARC_AUTORELEASE(x) ([(x) autorelease]) #define SAFE_ARC_BLOCK_COPY(x) (Block_copy(x)) #define SAFE_ARC_BLOCK_RELEASE(x) (Block_release(x)) #define SAFE_ARC_SUPER_DEALLOC() ([super dealloc]) #define SAFE_ARC_AUTORELEASE_POOL_START() NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; #define SAFE_ARC_AUTORELEASE_POOL_END() [pool release]; #endif
查看全文
相关阅读:
兔子数
忠诚
mysql字段名与关键字冲突(near "to":syntax error)
C/C++使用心得:enum与int的相互转换
ubuntu重新安装 apache2
ubuntu 删除mysql
Notepad++ 代码格式化
linux文件字符集转换(utf8-gb2312)
字符编码详解——彻底理解掌握编码知识,“乱码”不复存在
c语言判断是否是utf8字符串,计算字符个数
原文地址:https://www.cnblogs.com/javawebsoa/p/2458446.html
最新文章
UItableview 快速刷新引起的bug
iOS CoreData relationship 中的inverse
ios Unit test 入门书籍推荐
Spring JDBC最佳实践(2)
Spring JDBC最佳实践(1)
spring JDBC的应用
NamedParameterJdbcTemplate举例使用
spring jdbc
Spring的NamedParameterJdbcTemplate的简单使用
java ImmutableMap使用
热门文章
Hibernate的Hql语句使用in关键字
lhgDialog弹窗提示窗口组件
最大矩形面积
滑行的窗口
好奇怪的游戏
加分二叉树
雷涛的小猫
松江1843路
蚂蚁之旅
最小回文数
Copyright © 2011-2022 走看看