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;  
    } 

 

 
posted @ 2015-06-23 16:12  N了歌C  阅读(93)  评论(0编辑  收藏  举报