经过几个月的 Objective-C 编码,我完全明白什么时候需要 #import
,导入语句如何级联(波纹?),以及何时使用转发类。我不知道如何聚合导入以将它们放入 <>
中而不是引号(尽管这可能只是用于框架)...
问题是我把事情搞得一团糟。我来自 Java(和笨拙的 IDE),所以我只添加我认为合适的导入。有时我将它们添加到界面中,但由于通常没有必要,我只是将它们添加到 .m
的顶部。有问题。
今天我开始思考:必须有一些关于如何组织这些东西的经验法则。事实上,由于 Objective-C 是 C 的超集,一切 都有经验法则,但我不知道。 我应该如何组织我的导入?特别是:
- 我应该什么时候导入
.m
? - 我应该什么时候导入
.h
? - 我应该创建
.h
吗?文件只是为了导入它们(即,只包含导入的头文件)?如果是这样,有什么组织的提示吗?
这只是我想弄清楚的一般概念。
最佳答案
<....>
语法确实只适用于框架。但这并不意味着您不应该创建一个框架来包含应用程序的核心逻辑。如果您:
a) 需要为想要调用应用程序逻辑方面的可加载包提供支持(包链接到框架,您的应用程序也是如此) b) 编写共享相同核心逻辑的多个应用
你的问题有点主观,你会遇到两种方式争论的开发人员,但我遵循的惯例是:
- 切勿在
.h
中导入类定义文件,除非您将其子类化。使用转发@class
.h
中所有内容的指令. - 只将类定义导入
.m
当您发现需要在实现中使用该类时。
一般来说,.h
不需要访问其 ivar、方法参数或返回值的类定义。它只需要知道它们是类,也就是@class
。让你做。它确实需要访问您正在子类化的任何东西的类定义,向其添加类别,或(显然)为其实现协议(protocol)。
关于objective-c - 为 Objective-C/XCode 组织#import 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480666/