gpt4 book ai didi

objective-c - 何时在实现文件中包含#import

转载 作者:行者123 更新时间:2023-12-02 21:51:59 24 4
gpt4 key购买 nike

学习 Objective-C 和其他基于 c 的语言我了解到应该将 #includes 和 #imports 放在头文件中。 @class 也在那里。最近查看来自苹果和网络上其他来源的示例代码,@class 位于 header 中,所有导入都位于实现文件中。

哪个是正确的?两者都有原因吗?另外,如果导入头文件,为什么需要提供 @class 声明。

最佳答案

这两种情况都不是“更正确”,这两种行为肯定都有原因。例如,考虑一下您有两个类的情况,每个类都有对另一种类型的对象的引用:

A类.h:

@interface ClassA : NSObject
{
ClassB *b;
}

B类.h:

@interface ClassB : NSObject
{
ClassA *a;
}

此代码无法编译 - 这些 header 中有循环依赖项。解决方案是使用 @class 指令转发声明所需的类。

您可能更喜欢在头文件中使用 #import 指令的情况可能是,除了您在其他头文件中关心的类名之外,您还有一些通用代码 - 也许是 C 风格函数或者枚举类型什么的。

关于objective-c - 何时在实现文件中包含#import,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5383820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com