在Objective-C中,头文件导入和实现文件导入有什么区别?

In Objective-C, what's difference between import in header file and implementation file?

刚开始学习Objective-C。 头文件最像一个public接口,实现文件有私有接口。

但是我对选择在哪里导入另一个头文件感到困惑。

But I'm so confused by choosing where to import.

当且仅当 public 接口需要您导入的内容,例如在public 方法的签名 中使用了导入的类型,然后在接口文件中导入。

如果您导入的内容只是实施内部需要的,则在实施文件中导入。

以上为一般原则,不拘泥于Objective-C.

#import 不会引起交叉编译在Objective-C中,#import 被用作#include 指令的改进版本。另外,#import确定一个文件只能导入一次,这使得你在递归包含不会有问题@class一般用在头文件中需要声明一个class实例该变量在使用M文件时还是需要使用#import@class是为了告诉编译器有这样一个class,作为定义的class不知道为什么@class一般用在第一个文件中声明需要在M文件中使用时声明一个实例变量或者需要用#import ""表示自己创建文件,用第一个在当前目录下找,如果找不到到其他位置去找,"and"是相对的是自己创建的文件之一是系统文件