OC中的宏定义
Posted Kingdev
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC中的宏定义相关的知识,希望对你有一定的参考价值。
我们都知道,宏定义是编译期常量。而OC是一种动态语言。
1.ios系统版本判断的两个宏定义
1 __IPHONE_OS_VERSION_MAX_ALLOWED // iOS系统版本最大允许 2 __IPHONE_OS_VERSION_MIN_REQUIRED // iOS系统版本最小需要
使用这俩宏,仅仅能消除编译器的警告而已。因为OC是动态语言,所以系统版本还需要判断。例如:
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 用法:
1 Man *man = nil; 2 NSAssert(man, @"man Can\'t be empty.");
崩溃日志:
1 2016-04-02 18:34:49.505 OC测试[22300:1679317] *** Assertion failure in -[ViewController viewDidLoad], /Users/liuxianzhi/Desktop/OC测试/OC测试/ViewController.m:31 2 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); }
崩溃日志:
1 2016-04-02 18:51:10.155 OC测试[22326:1713380] *** Assertion failure in -[ViewController executeWithParam:], /Users/liuxianzhi/Desktop/OC测试/OC测试/ViewController.m:34 2 2016-04-02 18:51:10.164 OC测试[22326:1713380] *** Terminating app due to uncaught exception \'NSInternalInconsistencyException\', reason: \'Invalid parameter not satisfying: param\'
尊重作者劳动成果,转载请注明: 【kingdev】
以上是关于OC中的宏定义的主要内容,如果未能解决你的问题,请参考以下文章