美文网首页
Effective Objective-C - Minimize

Effective Objective-C - Minimize

作者: herbert | 来源:发表于2015-01-24 14:43 被阅读19次
    1. 当我们在定义一个类C1的接口时,通常会在声明方法的时候,使用到另外一个类C2作为方法的参数,当时这个类并不知道这个作为参数类的任何信息,于是我们通常会直接把作为参数的类C2的头文件直接导入到正在创建类C1的头文件中。这种做法可以解决眼前的问题,但是这种做法很糟糕。理由有两点:

      • 当有其他的类C3需要用到C1类的时候,我们如果还是按照这个方法导入C1头文件,那么C2头文件也会被导入,如果还有一个类C4要用到C3,那么其导入的头文件就更多了。所以,这种做法会增加编译时间。
      • 如果有两个类C1和类C2,他们互相引用,就会产生到底是先有鸡还是先有蛋的这种问题(循环引用)。当其中一个类C1进行语法解析的时候,它会导入另外一个类C2,C2这个类又导入了C1。这种导入(#import)会陷入无限循环,最后的结果是,没有一个类能够被正确的编译。

      为了解决这些存在的问题,一种更佳的实践方案是,在类C1的头文件中使用 @class 命令(@class C2;),在实现文件中导入C2(#import "C2"),在C2文件中的做法与此同理。

    2 . 在声明一个类遵从某项协议时,我们不能使用向前声明,取而代之的做法是,把协议编码在单独的一对文件中,然后在类的声明中导入这对文件(.h /.m)的头文件。

    相关文章

      网友评论

          本文标题:Effective Objective-C - Minimize

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