">" />
美文网首页
iOS_@class_#import ""_#import <>

iOS_@class_#import ""_#import <>

作者: 自律_自强_通达 | 来源:发表于2018-08-28 16:50 被阅读0次

一、概念

@class 、#import “”、#import <> 、#include <>、#include "",都是类导入的语句。

二、区别

1. OC:@class 、#import ""、#import <> 用于OC语言。
  1)@class :前向引用,为了解决循环导入问题(循环导入,会引起对象无法释放,造成内存泄漏,编译器也不允许),只是会告知当前类有这样一个类,但是这个类具体属性方法一概不知。
  2)#import "":导入一个程序员在项目中自己创建的类。
  3)#import <>:导入一个系统类(或者其他静态类库)。
2. C/C++:#include <>、#include "" 用于C语言。
  1)#include "":引用的是你程序目录的相对路径中的头文件。(随项目动)
  2)#include <>:引用的是你编译器的类库路径里面的头文件。(随编译器动,而编译器一般不动,所以这个路径基本是不变的)。

三、事例

  • @class :
    这里我们有一个ViewController类,和一个TwoViewController类 ,两个类相互引用。

首先展示:ViewController.h 文件

//
//  ViewController.h
//  forGoogle
//
//  Created by 郎震 on 2018/8/28.
//  Copyright © 2018年 OrganizationNameZL. All rights reserved.
//

#import <UIKit/UIKit.h>
// 首先得在.m 文件中引用了这个TwoViewController 类
@class TwoViewController;

@interface ViewController : UIViewController

@property (nonatomic, strong) TwoViewController *two;

@end

其次展示:ViewController.m 文件

//
//  ViewController.m
//  forGoogle
//
//  Created by 郎震 on 2018/8/28.
//  Copyright © 2018年 OrganizationNameZL. All rights reserved.
//

#import "ViewController.h"
#import "TwoViewController.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

那,现在TwoViewController类的引用方式一样,所以我把 它的引用方式不再显示在本文。

  • #import "" 和 #import <> 是讲 类文件,直接导入到引号里面就好。不多说。

相关文章

网友评论

      本文标题:iOS_@class_#import ""_#import <>

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