OC中的宏定义
2016-04-03 08:59
330 查看
我们都知道,宏定义是编译期常量。而OC是一种动态语言。
1.iOS系统版本判断的两个宏定义
使用这俩宏,仅仅能消除编译器的警告而已。因为OC是动态语言,所以系统版本还需要判断。例如:
![](https://images2015.cnblogs.com/blog/731437/201604/731437-20160402183023301-1300571043.png)
2.断言
NSAssert 用法:
崩溃日志:
NSParameterAssert用法:
崩溃日志:
尊重作者劳动成果,转载请注明: 【kingdev】
1.iOS系统版本判断的两个宏定义
__IPHONE_OS_VERSION_MAX_ALLOWED // iOS系统版本最大允许 __IPHONE_OS_VERSION_MIN_REQUIRED // iOS系统版本最小需要
使用这俩宏,仅仅能消除编译器的警告而已。因为OC是动态语言,所以系统版本还需要判断。例如:
![](https://images2015.cnblogs.com/blog/731437/201604/731437-20160402183023301-1300571043.png)
2.断言
/** @brief 适用:Objective-C的方法 @param condition 条件. @param desc 描述. @return 若条件为NO,则工程崩溃且打印 desc. */ NSAssert(<#condition#>, <#desc, ...#>) /** 适用:C的函数 */ NSCAssert(<#condition#>, <#desc, ...#>) /** @brief 适用:Objective-C @param condition 条件. @return 若条件为NO,则工程崩溃. */ NSParameterAssert(<#condition#>) /** 适用:C */ NSCParameterAssert(<#condition#>)
NSAssert 用法:
Man *man = nil; NSAssert(man, @"man Can't be empty.");
崩溃日志:
2016-04-02 18:34:49.505 OC测试[22300:1679317] *** Assertion failure in -[ViewController viewDidLoad], /Users/liuxianzhi/Desktop/OC测试/OC测试/ViewController.m:31 2016-04-02 18:34:49.515 OC测试[22300:1679317] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'man Can't be empty.'
NSParameterAssert用法:
#pragma mark - View lifeCycle - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor = [UIColor orangeColor]; [self executeWithParam:nil]; } - (void)executeWithParam:(NSString *)param { // param存在,程序继续;反之崩溃! NSParameterAssert(param); }
崩溃日志:
2016-04-02 18:51:10.155 OC测试[22326:1713380] *** Assertion failure in -[ViewController executeWithParam:], /Users/liuxianzhi/Desktop/OC测试/OC测试/ViewController.m:34 2016-04-02 18:51:10.164 OC测试[22326:1713380] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: param'
尊重作者劳动成果,转载请注明: 【kingdev】
相关文章推荐
- surface shader
- Google镜像网站全(4-3更)
- iOS开发 -- 发送JSON数据给服务器
- Python之路【第十八篇】Django小项目简单BBS论坛部分内容知识点
- composer install or update 报错问题解决
- SQL Server与MySQL数据库对比
- Cotex M3权威指南学习笔记二--软件中断
- PGM格式图像详解
- FlycoRoundView
- 【LeetCode】Counting Bits(338)
- Minimum Size Subarray Sum -- leetcode
- Windows程序设计_20_一键打开博客园程序
- 三角形类锥形
- 赵雅智_Fragment生命周期
- next_permutation函数
- 经验模态分解法简析
- 经验模态分解法简析
- 三. 监控工具
- Windows程序设计_19_测试Windows应用程序加载函数
- Linux内核及分析 第六周 分析Linux内核创建一个新进程的过程