zoukankan      html  css  js  c++  java
  • NSAssert和NSParameterAssert

    #if !defined(NS_BLOCK_ASSERTIONS)
    
    //NSAssert定义
    #if !defined(_NSAssertBody)
    #define NSAssert(condition, desc, ...)    
        do {                
        __PRAGMA_PUSH_NO_EXTRA_ARG_WARNINGS 
        if (__builtin_expect(!(condition), 0)) {        
                NSString *__assert_file__ = [NSString stringWithUTF8String:__FILE__]; 
                __assert_file__ = __assert_file__ ? __assert_file__ : @"<Unknown File>"; 
            [[NSAssertionHandler currentHandler] handleFailureInMethod:_cmd 
            object:self file:__assert_file__ 
                lineNumber:__LINE__ description:(desc), ##__VA_ARGS__]; 
        }                
            __PRAGMA_POP_NO_EXTRA_ARG_WARNINGS 
        } while(0)
    #endif
    
    
    //NSCAssert定义
    #if !defined(_NSCAssertBody)
    #define NSCAssert(condition, desc, ...) 
        do {                
        __PRAGMA_PUSH_NO_EXTRA_ARG_WARNINGS 
        if (__builtin_expect(!(condition), 0)) {        
                NSString *__assert_fn__ = [NSString stringWithUTF8String:__PRETTY_FUNCTION__]; 
                __assert_fn__ = __assert_fn__ ? __assert_fn__ : @"<Unknown Function>"; 
                NSString *__assert_file__ = [NSString stringWithUTF8String:__FILE__]; 
                __assert_file__ = __assert_file__ ? __assert_file__ : @"<Unknown File>"; 
            [[NSAssertionHandler currentHandler] handleFailureInFunction:__assert_fn__ 
            file:__assert_file__ 
                lineNumber:__LINE__ description:(desc), ##__VA_ARGS__]; 
        }                
            __PRAGMA_POP_NO_EXTRA_ARG_WARNINGS 
        } while(0)
    #endif
    //NSParameterAssert定义
    #define NSParameterAssert(condition) NSAssert((condition), @"Invalid parameter not satisfying: %@", @#condition)
    //NACParameterAssert定义
    #define NSCParameterAssert(condition) NSCAssert((condition), @"Invalid parameter not satisfying: %@", @#condition)

    参看链接:https://www.jianshu.com/p/6e444981ab45

  • 相关阅读:
    平安夜前夜,我在上海沐恩堂度过
    吃匹萨的数学
    2004语录
    爱的罗曼斯
    转发: 上季度全球最佳短篇小说《最后一趟生意》
    一个人的元宵节
    超越纪念我的blog排名上升到第六位
    读《仆人》
    我的龟宝宝病了:( 谁来救救她?
    春晚
  • 原文地址:https://www.cnblogs.com/chaoguo1234/p/9115814.html
Copyright © 2011-2022 走看看