zoukankan      html  css  js  c++  java
  • 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】

  • 相关阅读:
    数据结构与算法题目集(中文)7-25 朋友圈 (25分) 并查集
    数据结构与算法题目集(中文)7-24 树种统计 (25分)
    数据结构与算法题目集(中文)7-23 还原二叉树 (25分)
    数据结构与算法题目集(中文)7-22 堆栈模拟队列 (25分)
    数据结构与算法题目集(中文)7-21 求前缀表达式的值 (25分)
    [SDOI2018]反回文串
    ARC 064 F-Rotated Palindromes
    AGC014-F Strange Sorting
    AGC011-E Increasing Numbers
    AGC011-C Squared Graph
  • 原文地址:https://www.cnblogs.com/xiu619544553/p/5347884.html
Copyright © 2011-2022 走看看