Dropbox iOS SDK 有自己的框架包,但为了轻松自定义它,我选择将其 Xcode 项目作为子项目包含在内。我应该如何引用它的 .h 类?我从“添加文件”按钮添加了 .xcodeproj,并在标题搜索路径中添加了以下值:
$(PROJECT_DIR)
子项目看起来与主项目处于同一级别。
导入本身不应该链接依赖项吗?
(我对 Xcode 中的导入系统感到非常沮丧)
Dropbox iOS SDK 有自己的框架包,但为了轻松自定义它,我选择将其 Xcode 项目作为子项目包含在内。我应该如何引用它的 .h 类?我从“添加文件”按钮添加了 .xcodeproj,并在标题搜索路径中添加了以下值:
$(PROJECT_DIR)
子项目看起来与主项目处于同一级别。
导入本身不应该链接依赖项吗?
(我对 Xcode 中的导入系统感到非常沮丧)
您的基本方法似乎很合理(并且非常接近我处理大量供应商项目的方式)。由于您已添加$(PROJECT_DIR)
到标题搜索路径,并假设框架位于名为“Dropbox”的目录中,那么您可以通过以下几种方式引用包:
#import <Dropbox/Header.h>
#import "Dropbox/Header.h"
我更喜欢将子项目视为“类系统”,因此倾向于使用尖括号,为内部代码保留双引号。但任何一种方法都很好。
导入本身不应该链接依赖项吗?
不,您仍然需要链接依赖项。#import
只做一件事:将请求的文件插入当前文件。这就是它所做的一切。它与您获取引用的文件并将其复制/粘贴到您的代码中相同(这基本上就是它在预处理器中的实现方式)。这用于“头”文件是一个约定问题。它与编译器的工作方式无关。从技术上讲,您可以导入.m
包含方法的文件作为代码重用的一种方式。(我已经在我从事的项目中看到过这种情况。请不要这样做......)
在处理 ObjC 模块时,它有点不同(使用@import
而不是#import
)。但是,如果您只是按照您的样子导入标头,请将其视为“将其他文件粘贴在此处,完全按照所写的内容”。