• 关于 Pragma 的使用总结


      注意:此文乃是本人阅读多个博客文章后,记下的个人认为重点的地方。

      参考文章:

        参考1   参考2

    • #Pragma mark - 用于分离类中的不同功能的方法。(例如,一个 viewController 一般需要这样划分)
    #pragma mark - life cycle
    - (void)dealloc {
        // [super dealloc];
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
    }
    
    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
    }
    
    - (void)viewWillDisappear:(BOOL)animated {
        [super viewWillDisappear:animated];
    }
    
    #pragma mark - UIXXXXDelegate
    
    #pragma mark - CustomDelegate
    
    #pragma mark - event response
    
    #pragma mark - private methods
    
    #pragma mark - getters and setters
    

      

    • 全局忽略 performSelect
    #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
    

      

    • 局部忽略 performSelect
    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
    
    [myObj performSelector:mySelector withObject:name];
    
    #pragma clang diagnostic pop
    

      

    • 设置忽略不使用变量的警告 #pragma unused
    - (void)giveMeFive
    {
        NSString *foo;
        #pragma unused (foo)
    
        return 5;
    }
    

      

    • 明确编译错误或者警告 (#error, #Warning 用于提醒别人或者自己代码尚有缺陷的时候很管用)
    - (NSInteger)divide:(NSInteger)dividend by:(NSInteger)divisor
    {
        #error Whoa, buddy, you need to check for zero here!
        return (dividend / divisor);
    }
    

      

    - (float)divide:(float)dividend by:(float)divisor
    {
        #warning Dude, don't compare floating point numbers like this!
        if (divisor != 0.0) {
            return (dividend / divisor);
        }
        else {
            return NAN;
        }
    }
    
    • 设置忽略 Depracated Method 的警告
    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wdeprecated-declarations"
        // call deprecated method without warning
        
    #pragma clang diagnostic pop
    

      

      

  • 相关阅读:
    BootStrap 学习笔记一
    ROW_NUMBER() OVER的用法
    Angularjs学习笔记(五)----显示和格式化数据
    &&和||的妙用
    形象的讲解angular中的$q与promise(转)
    Angularjs学习笔记(四)----与后端服务器通信
    Angularjs学习笔记(一)
    Angularjs学习笔记(二)----模块
    Angularjs学习笔记(三)----依赖注入
    StringBuilder类型
  • 原文地址:https://www.cnblogs.com/eileenleung/p/4703796.html
Copyright © 2020-2023  润新知