objective-c - 为 Objective-C/XCode 组织#import 语句

标签 objective-c xcode

经过几个月的 Objective-C 编码,我完全明白什么时候需要 #import ,导入语句如何级联(波纹?),以及何时使用转发类。我知道如何聚合导入以将它们放入 <> 中而不是引号(尽管这可能只是用于框架)...

问题是我把事情搞得一团糟。我来自 Java(和笨拙的 IDE),所以我只添加我认为合适的导入。有时我将它们添加到界面中,但由于通常没有必要,我只是将它们添加到 .m 的顶部。有问题。

今天我开始思考:必须有一些关于如何组织这些东西的经验法则。事实上,由于 Objective-C 是 C 的超集,一切 都有经验法则,但我不知道。 我应该如何组织我的导入?特别是:

  • 我应该什么时候导入 .m
  • 我应该什么时候导入 .h
  • 我应该创建 .h 吗?文件只是为了导入它们(即,只包含导入的头文件)?如果是这样,有什么组织的提示吗?

这只是我想弄清楚的一般概念。

最佳答案

<....>语法确实只适用于框架。但这并不意味着您不应该创建一个框架来包含应用程序的核心逻辑。如果您:

a) 需要为想要调用应用程序逻辑方面的可加载包提供支持(包链接到框架,您的应用程序也是如此) b) 编写共享相同核心逻辑的多个应用

你的问题有点主观,你会遇到两种方式争论的开发人员,但我遵循的惯例是:

  1. 切勿在 .h 中导入类定义文件,除非您将其子类化。使用转发@class .h 中所有内容的指令.
  2. 只将类定义导入 .m当您发现需要在实现中使用该类时。

一般来说,.h不需要访问其 ivar、方法参数或返回值的类定义。它只需要知道它们是类,也就是@class。让你做。它确实需要访问您正在子类化的任何东西的类定义,向其添加类别,或(显然)为其实现协议(protocol)。

关于objective-c - 为 Objective-C/XCode 组织#import 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480666/

相关文章:

ios - Xcode 中有 var_dump 吗?

c++ - 一次将代码添加到 iOS/objective-C 项目和 c++ 库?

objective-c - 在 sqlite 中制作规范化版本的字符串 - 波兰字符 ł

ios - Xcode6:运行模拟器的两个实例

工具栏中条形按钮项底部的 Swift 条

xcode - Swift:如何将字符转换为字符串来进行简单比较?

xcode - 每次构建项目时,如何强制 Xcode 重新构建项目中的 Info.plist 文件?

iphone - iOS 许多图像 - 保持良好的性能

ios - NSPredicate 在 Objective C 中查找多个单词

ios - 将图像集@ 2x和@ 3x大小从Sketch导出到Xcode