美文网首页
Effective Objective-C 2.0笔记

Effective Objective-C 2.0笔记

作者: 月子我的嫁 | 来源:发表于2017-03-31 10:22 被阅读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,这样为了以后增加新的枚举值后编译器可以提示用户没有全部实现

    相关文章

      网友评论

          本文标题:Effective Objective-C 2.0笔记

          本文链接:https://www.haomeiwen.com/subject/xppmottx.html