iOS笔记

多用类型变量,少用#define预处理指令

若不算公开某个常量,则应该定义在该常量的实现文件里:

static const NSTimeInterval kAnimationDuration = 0.3;

static 和 const 定义的值,如果遭到修改,编译器会报错

如果要对外公开,例如创建一个通知,可以这样定义:

.h:      extern NSString *const MRHStringConstant;

.m:     NSString *const MRHStringConstant = @"VALUE";

编译器看到头文件的extern 关键字,就能明白如何造引入此头文件的代码中处理改常量了.这个关键字是要告诉编译器,在全局符号表中将会有一个名叫MRHStringConstant的符号。也就是说编译器无需查看其定义,即允许代码是要此变量,因为它知道当连接成二进制文件之后,肯定能找到这个常量.此类常量必须要定义,且只能定义一次。通常在声明的实现文件里。由实现文件生成目标文件时,编译器会在“数据段”为字符串分配存储空间,链接器会把此目标文件与其他目标文件链接,以生成最终的二进制文件。凡是要用到这个全局符号的地方,链接器都能解析。

用枚举表示状态 选项 状态码

typedef NS_ENUM(NSInteger,PersonType) {

    PersonTypeMan = 1,

    PersonTypeWomen,

};

你可能感兴趣的:(iOS笔记)