美文网首页
objective-c @class

objective-c @class

作者: 一世长安乱 | 来源:发表于2018-04-10 16:36 被阅读0次
    • 作用:可以简单的引用一个类
    • 简单使用:
      • @class className;
      • 仅仅是告诉编译器:className只是一个类;并不会包含这个类的所有内容
    • 具体使用
      • 在.h文件中使用@class引用一个类
      • 在.m文件中使用#import包含这个类的.h文件
    第一种应用场景
    1. 如果都在.h中import,假如A拷贝了B,B拷贝了C,C被修改,那么B和A都需要重新拷贝
    2. 如果在.h中使用@class,在.m中import,那么如果一个文件发生变化,只有和这个文件有直接关系的那么文件才会重新拷贝

    如果A、B对象相互拥有,此时会形成循环retain
    解决方法:让其中一方不要做retain操作

    所以使用@class可以提升编译效率

    第二种应用场景

    如果两个类循环依赖造成死循环报错

    在.h中使用@class,在.m中使用import

    在.h中使用@class,不会做任何拷贝工作,在.m中使用import,只会拷贝对应的文件,不会造成死循环

    和#import的区别
    1. @class只是告诉编译器有这个类,其他什么信息完全不知道
    2. 效率比#import高

    相关文章

      网友评论

          本文标题:objective-c @class

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