OC 新增关键字

新增关键字基本都以 @ 符号开头.

关键字

@interface 类定义描述开始标记
@end 类描述 / 类实现 结束标记
@public 使其后的类成员公有 标记
@private 使其后的类成员私有 标记
@protected 使其后的类成员保护 标记(默认为保护)
#import "xxx.h" 不重复头文件引用标记
@class ClassA 提前引用类, 用于无需知道类的具体描述时不引用头文件,加快编译
self 类方法中使用, 引用类实例
super 子类中使用, 引用父类的方法
   
类型 类型 变量名;
变量 int iVar;
unsigned char cVar;
struct MyStruct StructVar;
指针 int *iPointVar;
struct MyStruct *StructPointVar;

简单类型

标识 类型 长度 值范围
unsigned char 无符号字符  8 bits  0 to 255
char 字符  8 bits  -128 to 127
enum 枚举(常量序列)  16 bits  -32,768 to 32,767
unsigned int 无符号整数  16 bits  0 to 65,535
short int 整数  16 bits  -32,768 to 32,767
int 整数  16 bits  -32,768 to 32,767
unsigned long 无符号长整数  32 bits  0 to 4,294,967,295
long 长整数  32 bits  -2,147,483,648 to 2,147,483,647
float 单精度浮点数  32 bits  3.4 * (10**-38) to 3.4 * (10**+38)
double 双精度浮点数  64 bits  1.7 * (10**-308) to 1.7 * (10**+308)
long double 浮点数  80 bits  3.4 * (10**-4932) to 1.1 * (10**+4932)

指针类型

指针指向一个地址,不论该地址实际存储着什么类型的数据,一律按定义指针时的类型操作。

定义 说明 示例
int *ip1, *ip2 ; 指向某类型的指针 i = i + *ip1;
int (*p)([参数]) 指向函数的指针,该函数返回 int 值
赋值后用法与函数相同
p(参数)

复合类型

类型 说明 示例
结构 长度为各成员长度之和

各成员存储地址相接

struct MyStruct {
    int i;
    double d;
};
联合 长度为最长的成员长度

各成员存储地址重叠,互相影响

union MyUnion {
    int i;
    double d;
};

注:在结构中,可定义指定位数的整数,如 int a:4 表示 4 位长的整数,最长为 16 位。
    连续定义时,按先低位后高位的顺序排列,整体以字节长度对齐。

enum 用法示例

enum MyEnum {
    Sunday=0,
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
};