一、概念
@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 <> 是讲 类文件,直接导入到引号里面就好。不多说。
网友评论