zoukankan      html  css  js  c++  java
  • Effective Objective-C 2.0之Note.02

    1.多用类型常量,少用#define预处理指令

    不要用预处理指令定义常量。这样定义出来的常量不含类型信息,编译器只是会在编译前据此执行查找与替换操作。即使有人重新定义了常量值,编译器也不会产生警告信息,这将导致应用程序中的常量值不一致。

    在实现文件中使用static const来定义“只在编译单元内可见的常量”(translation-unit-specific constant)。由于此类常量不在全局符号表中,所以无须为其名称加前缀。

    在头文件中使用extern来声明全局常量,并在相关实现文件中定义其值。这种常量要出现在全局符号表中,所以其名称应加以区隔,通常用与之相关的类名做前缀。


    2.用枚举表示状态、选项、状态码

    枚举只是一种常量命名方式。某个对象所经历的各种状态就可以定义为一个简单的枚举集(enumeration set).
     
        typedef NS_ENUM(NSUInteger, EOCConnectionState) {  
            EOCConnectionStateDisconnected,  
            EOCConnectionStateConnecting,  
            EOCConnectionStateConnected,  
        };  
         
        switch (_currentState) {  
            EOCConnectionStateDisconnected:  
                // Handle disconnected state  
                break;  
            EOCConnectionStateConnecting:  
                // Handle connecting state  
                break;  
            EOCConnectionStateConnected:  
                // Handle connected state  
                break;  
        } 
     
    如有疑问,共同探讨,共同进步。
  • 相关阅读:
    UVa 11572
    Codeforces Round #500 (Div. 2) C.Photo of The Sky
    C++中的1LL
    Codeforces Round #500 (Div. 2) ABC
    UVA11054 Wine trading in Gergovia
    UVA 11134 Fabled Rooks (贪心)
    uva1152
    牛客网暑期ACM多校训练营(第一场)A Monotonic Matrix(数学公式+思维)
    牛客网暑期ACM多校训练营(第三场)A.PACM Team(多重01背包)
    普通平衡树
  • 原文地址:https://www.cnblogs.com/nielsen/p/4829274.html
Copyright © 2011-2022 走看看