美文网首页
编写高质量iOS与OS+X代码的52个有效方法(2)

编写高质量iOS与OS+X代码的52个有效方法(2)

作者: Vesen | 来源:发表于2017-08-31 10:26 被阅读0次

    2.在类的头文件中尽量少的引入其他头文件。

      Objective-C一般创建“类”(class)的方式是创建头文件(.h)和实现文件(.m)

    创建好一个类,代码如下:


    //EOCPerson.h

    #import

    @interface EOCPerson : NSObject

    @property (nonatomic,copy) NSString *fristName;//!< fristname

    @property (nonatomic,copy) NSString *lastName;//!< lastname


    //EOCPerson.m

    #import "EOCPerson.h"

    @implementation EOCPerson

    @end


    以上是基础的创建简单类,但很多时候我们使用的类并非这么简单,类的当中还会使用到其他的类,这个时候我们一般的写法是这样的。


    //EOCPerson.h

    #import

    #import "EOCEmptyer.h"

    @interface EOCPerson : NSObject

    @property (nonatomic,copy) NSString *fristName; //!< fristname

    @property (nonatomic,copy) NSString *lastName; //!< lastname

    @property (nonatomic,strong) EOCEmptyer *emptyer; //!< emptyer

    @end


    这种写法有一个问题,就是在编译的时候会先加载 EOCEmptyer.h 文件,其实我们只需要知道有个类名叫 EOCEmptyer。

    这时就可以用看起来比较高大上的方法“向前声明”

    @class EOCEmptyer;


    #import

    //#import  "EOCEmptyer.h"

    @class EOCEmptyer;

    @interface EOCPerson : NSObject

    @property (nonatomic,copy) NSString *fristName; //!< fristname

    @property (nonatomic,copy) NSString *lastName; //!< lastname

    @property (nonatomic,strong) EOCEmptyer *emptyer; //!< emptyer

    @end


    这时//EOCPerson.m 需要改成这样


    //EOCPerson.m

    #import "EOCPerson.h"

    #import "EOCEmptyer.h"

    @implementation EOCPerson

    @end


    这样将头文件的时机引入延后,在需要的时候才引入,可以减少编译时间。

    要点

    1.除非有必要,否则不要引入头文件。用向前声明来提取类,并在.m中引入头文件。这样可以尽量降低类之间的耦合。

    2.若无法使用向前声明,比如说要遵循某个协议。这情况,尽量吧“该类遵循某协议”这个声明移至“class - continuation分类”中。如果还是不行,就把协议单独放在一个头文件,然后将其引入。



    本文是来自对《Effective+Objective-C+2.0++编写高质量iOS与OS+X代码的52个有效方法》学习的记录,大家可自行阅读原著。

    相关文章

      网友评论

          本文标题:编写高质量iOS与OS+X代码的52个有效方法(2)

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