美文网首页iOS-faceiOS收录
iOS #include、#import、@class的区别

iOS #include、#import、@class的区别

作者: 不做待宰的猴子 | 来源:发表于2016-08-23 17:38 被阅读0次

在OC中,引用文件可以通过#include、#import、@class三种方式。

一. #include

1. 在C语言中,我们使用#include来引入头文件。使用#include “xx.h”来引入自定义的头文件,使用#include来引入库中的头文件。

2. #include不是不能防止重复引用头文件,而是操作起来比较复杂。

3. #include:为了防止重复引用可采用:

#ifndef  ViewController_h

#define ViewController_h

#endif

二. #import

1. #import是#include的升级版,可以防止重复引入头文件这种现象的发生。

2. #import在引入头的时候,就是完全将头文件拷贝到现在的文件中。所以也有效率上的问题。

3. #import最大的问题在于,需要避免出现头文件递归引入的现象。(如:A引入B,B引入A,那么A、B的头文件会互相不停的拷贝)

三. @class

1. @class用来告诉编译器,有这样一个类,使书写代码时,不报错。 但是@class只是使导入的类名在引用时不受影响,不能创建该类的对象,因为创建对象时也需要访问其内部方法。

2. 因为#import引入头文件有效率问题,所以,当还没有调用类中方法,仅仅是定义类变量的时候,使用@class来提醒编译器。而在真正需要调用类方法的时候,进行#import。

3. 如果A是B的父类,那么这是在B.h中就必须要使用#import来引入A的头,因为需要知道A类中有哪些变量和方法,以免B类中重复定义。  

相关文章

  • 2019--iOS 面试集锦

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

  • iOS笔试题01

    《2018 iOS面试题系列》 1. #import 跟 #include、@class有什么区别?#import...

  • 基础面试题

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

  • 2019-01-12

    iOS面试题及答案 #import跟 #include 有什么区别,@class呢,#import<> 跟 #im...

  • iOS | 面试基础整理

    iOS | 面试知识整理 - OC基础 (一) 1. #include、#import、@class的区别? 在C...

  • OC基础

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

  • iOS进阶基础

    iOS常用的设计模式有哪些?MVC和MVVM的区别? import和@include和区别?@class有什么作用...

  • iOS #include、#import、@class的区别

    在OC中,引用文件可以通过#include、#import、@class三种方式。 一. #include 1. ...

  • iOS-题总结-1

    #import 跟#include、@class有什么区别?#import<> 跟 #import""又什么区别?...

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

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

网友评论

    本文标题:iOS #include、#import、@class的区别

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