Effective Objective-C 2.0笔记

2017-03-31  本文已影响9人  月子我的嫁

        学习Objective-C也有一段时间了,最近趁着没事,看了Effective Objective-C 2.0这本书,既然看书,那么就把其中的要点记录一下,以便以后查询

1.熟悉Objective-C

在类的头文件中尽量少引用其他类的头文件

在类的头文件中,如果需要用到其他的类,那么不需要使用#import@“XXX.h”来引入头文件,因为它不需要知道里面的全部细节,只需要使用@class来声明就可以了,将引入的头文件尽量延后,可以减少编译时间。

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

这条比较好理解,即 NSString *str = @“123”   == [NSString stringwithstring:@"123"]  ,     NSNumber *n = @1   == [NSNumber numberWithInt:1] , 等等,全部使用第一种写法,包括但不限于以上几种。

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

尽量避免在头文件中使用#define来进行预处理指令,因为不可避免的会有头文件包含,假如会存在相同名称的两个预处理指令,会有意料之外的异常出现。

如果只在本类中能够使用的常量,那么应该在#implement中进行定义,类似于 static const NSTimeInterval kAnimationDuration = 0.2; 其中 static表示只在编译单元的内部可以使用。 const则表示该值是不可改变的 如果改变会报错。假如要定义全局可以使用的常量,那么就在.h文件中定义常量名: extern const NSTimeInterval EOCAnimationDuration,在.m文件中进行该常量的赋值:const NSTimeInterval EOCAnimationDuration = 0.2。

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

使用enum来进行定义,替换数字,以便程序员记忆。类似于

typedef enum : NSUInteger {

<#MyEnumValueA#>,

<#MyEnumValueB#>,

<#MyEnumValueC#>,

} <#MyEnum#>;

如果可以同时使用其中多个状态,那么可以将其中的状态定义为2的幂,方便以后的组合,

如果使用了枚举,那么在switch-case中不要使用default,这样为了以后增加新的枚举值后编译器可以提示用户没有全部实现

上一篇 下一篇

猜你喜欢

热点阅读