@class和#import

作者: 一直很安静_25ae | 来源:发表于2019-06-02 14:04 被阅读0次

1>>>@class作用

仅仅告诉编译器,某个名称是一个类

举例 @class Person;//仅仅告诉编译器Person是一个类

2>>>开发中引用一个类的规范

2.1>在.h文件中用@class来声明类

2.2>在.m文件中用#import来包含类的所有东西


如果两个类相互引用就会出现循环引用的问题,因此只需要在.h文件中用@class告诉编译器这是指一个类就可以了在.m文件中#impot相应的类

在MRC中两端循环引用的解决方案

1>一端用retain

2>一端用assign

在ARC中两端循环引用的解决方案

1>一端用copy

2>一端用weak


@class和#import的区别

1>#import方式会包含所引用类的多有信息,包括被引用类的变量和方法;而@class方式只是告诉编译器在A.h文件中B *b 只是类的声明,具体这个类里有什么信息,这里不需要知道,等.m实现文件中怎正用到时,才会真正去查看B类中的信息

2>如果有上百个头尾文件都#import了同一个文件,或者这些文件被依次#import,那么一旦最开始的头文件稍微有些改动,后面引用到这个文件的所有类都需要重新编译一遍,这样的效率也是可想而知的,而相对来讲,使用@class就不会出现这样的问题

3>在.m实现文件中,如果需要引用到被引用类的实体变量或者方法时,还需要使用#import方式引入被引用类


相关文章

  • Class 和 import

    https://blog.csdn.net/zanshiyonghuming/article/details/50...

  • @class和#import

    1>>>@class作用 仅仅告诉编译器,某个名称是一个类 举例 @class Person;//仅仅告诉编译器P...

  • 基础面试题

    1,#import和#include区别 #import和@class的区别 #import<>和#import"...

  • OC基础

    1.#import、#include、@class、#import<>和#import""的区别?import 是...

  • import和@class用法

    面试中常出现的问题,这里解释一下,加深印象:这个import和@class之所以出现在一个问题里,其实最终还是类之...

  • #include,#import和@class

    - #include: - 用于文件包含, #include "A.h"; - 当C 包含 A和B, 同时B包含A...

  • iOS面试-1

    #import和#include有什么区别?@class呢?#import<>和#import""有什么区别? #...

  • 2019--iOS 面试集锦

    一、iOS基础 1、#import、#include、@class有什么区别,#import<>和#import“...

  • @class and #import

    简介 在 Objective - C 中也使用了“头文件”和“实现文件”来区隔代码,所以在创建类的时候我们要通过@...

  • 1:#import和#include有什么区别,@class,#

    1:#import和#include有什么区别,@class,#import<>跟#import" "有什么区别?...

网友评论

    本文标题:@class和#import

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