第一章 熟悉Objective-C

来源:互联网 发布:mysql数据库查ip 编辑:程序博客网 时间:2024/05/20 23:04

第一条 了解Objective-C的起源

  • OC是C语言添加了面向对象的特性,是其超集,OC使用动态绑定的消息结构,也就是说在运行时候才会检查对象类型,接收一条消息,执行什么代码,由运行期环境而非编译器决定。

第二条 在类的头文件中尽量少引入其他的头文件

  • 除非有必要否则不要引入头文件,应该使用向前声明(forward declaring)来提及某一个类,然后在实现文件中引入那个类,这样做可以降低类之间的耦合性。

第三条 多用字面量语法,少用与之等价的方法

  • 使用字面量语法来创建字符串、数值、数组、字典。与常规方法相比更简明扼要。
    例子:
    NSNumber *num = [NSNumber numberWithInt:1];
    NSNumber *num = @1; 等等之类

  • 应该通过取下角标操作来访问数组元素或字典中键所对的值
    例子:
    animals[1] instead of objectAtIndex

  • 用字面量语法来创建字典或者数组时,若值中有nil则会抛出异常,所以要保证值中不存在nil。

第四条 多用类型常量,少用#define预处理指令

  • 不要用预处理指令定义常量,这样的常量不含类型信息,编译器会在编译前进行查找与替换操作,即使重新定义常量值,编译器也不会产生警告,这会导致程序中常量值不一致。
  • 在实现文件中使用static const 来定义“只在编译单元内可见的常量”由于此类常量不在全局符号表中,所以无需为其命名加前缀。
  • 在头文件中使用extern来声明全局变量,并在相关实现文件定义该值,这种常量要出现在全局符号表中,所以其名称要加以区隔,通常用相关类名做前缀。

第五条 用枚举表示状态、选项、状态码

  • 应该用枚举表示状态机的状态,传递给方法的选项以及状态码等值,给这些值起个易懂的名字。
  • 如果把传递给某个方法的选项表示为枚举类型,而多个选项又可同时使用,那么就把各选项值定义为2的幂,以便通过按位或操作将其组合。
    例子:
    这里写图片描述
    这里写图片描述
  • 使用NS_ENUM和NS_OPTIONS宏来定义枚举类型,并指明其底层数据类型,这样做可以保证枚举是用开发者所选的底层数据类型实现出来的,而不会使用编译器所选用的类型。
  • 在处理枚举类型的switch中不要实现default分支,这样加入新枚举之后编译器就会提示switch语句并未处理所有枚举。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 全血粘度3偏高怎么办 血粘度高的症状怎么办 粉瘤感染化脓了怎么办 乌药剂量用大了怎么办 水卡消磁了怎么办妙招 电卡消磁了怎么办妙招 入园磁卡消磁了怎么办 透析中静脉压高怎么办 腰间盘突出压迫神经腿疼怎么办 肺热引起的发烧怎么办 肺热引起的痘痘怎么办 冰箱压条的霉点怎么办 白色的布鞋变黄怎么办 白鞋橡胶变黄了怎么办 肝功能检查总胆汁酸高怎么办 吃丹参滴丸尿血怎么办 胰酶消化过久怎么办 抗凝血酶活性低怎么办 抗凝血酶3偏低怎么办 抗凝血酶ⅲ低 怎么办 抗凝血酶3抗原高怎么办 孕32周血压高怎么办 智齿血凝块掉了怎么办 入职体检alt偏高怎么办 剖腹产后crp值高怎么办 超敏c反应蛋白偏高怎么办 孕妇c反应蛋白高怎么办 婴儿超敏crp偏高怎么办 小孩c反应蛋白高怎么办 发烧c反应蛋白高怎么办 孕妇快生了贫血怎么办 小孩吃糖牙齿痛怎么办 前门牙掉了一块怎么办 吃冷东西牙疼怎么办 吃甜的立刻牙疼怎么办 吃甜的牙疼怎么办 孕妇甲功t4偏低怎么办 得了肝内钙化灶怎么办 喝了除垢剂的水怎么办 喝甘露醇后吐了怎么办 文玩核桃盘黑了怎么办