常用的Objective-C特性检查
来源:互联网 发布:免备案免费php空间 编辑:程序博客网 时间:2024/05/18 02:40
- 检查是否支持blocks
__has_extension(blocks)
- 检查是否支持instancetye上下文关键词
__has_feature(objc_instancetype)
@interface A+ (instancetype)constructAnA;@end
- 检查是否支持arc
__has_feature(objc_arc)__has_feature(objc_arc_weak) //同时检查是否支持__weak指针
- 检查是否支持固定基础类型的枚举
__has_feature(objc_fixed_enum)
- 检查是否支持对象字面值
__has_feature(objc_array_literals)__has_feature(objc_dictionary_literals)
- 检查是否支持对象下标(OC的对象指针现在可以像C一样做下标操作)
__has_feature(objc_subscripting)
- 检查是否支持属性的自动合成(不使用@dynamic的情况下,自动生成存取方法)
__has_feature(objc_default_synthesize_properties)
使用范例(来源:MBProgressHUD源码):
#ifndef MB_INSTANCETYPE#if __has_feature(objc_instancetype)#define MB_INSTANCETYPE instancetype#else#define MB_INSTANCETYPE id#endif#endif#ifndef MB_STRONG#if __has_feature(objc_arc)#define MB_STRONG strong#else#define MB_STRONG retain#endif#endif#ifndef MB_WEAK#if __has_feature(objc_arc_weak)#define MB_WEAK weak#elif __has_feature(objc_arc)#define MB_WEAK unsafe_unretained#else#define MB_WEAK assign#endif#endif#if NS_BLOCKS_AVAILABLEtypedef void (^MBProgressHUDCompletionBlock)();#endif
- 常用的Objective-C特性检查
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的新特性
- Objective-C的动态特性
- Objective-C的动态特性
- Objective-c的动态特性
- Objective-C的动态特性
- Objective-C的动态特性
- Objective-C的新特性
- Objective-C的动态特性
- Objective-C的动态特性
- Objective-C的Runtime特性
- Objective-C的动态特性
- 数据结构之递归打印实数
- NYOJ-255-C小加 之 随机数-2013年10月18日17:19:41
- 搜索引擎(一):基本知识
- HTTPClient实现java自动登录人人网
- 1
- 常用的Objective-C特性检查
- 【天梯 - Wikioi】2235 机票打折
- 输入三角形三边长,判断是否能组成三角形,并输出面积
- hdu 1179最大匹配
- linux中interfaces文件auto和auto-hotplug区别
- SDRAM的寻址知识及重要的参数
- 程序员面试题精选100题(09)-链表中倒数第k个结点[数据结构]
- 第15周项目4-字符串操作
- NYOJ-263-精 挑 细 选-2013年10月20日17:07:37