首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用<Library.h>导入<Library/Library.h>和#import CocoaPods之间有什么区别?

使用<Library.h>导入<Library/Library.h>和#import CocoaPods之间有什么区别?
EN

Stack Overflow用户
提问于 2014-02-13 19:28:02
回答 2查看 460关注 0票数 6

我看到了一些关于CocoaPods的指南,这些指南推荐导入所需的pod库头,如下所示:

代码语言:javascript
复制
#import <Library/Library.h>

其中Library是库的名称(例如#import <AFNetworking/AFNetworking.h>)。

我还看到了一些指南,它们推荐导入所需的pod库头,如下所示:

代码语言:javascript
复制
#import <Library.h>

(例如#import <AFNetworking.h>)

这两种方法都是编译的,而且似乎都能工作。

有什么区别,应该用哪一种?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-13 19:46:44

如果导入的标头是唯一的,这两种方法都可以正常工作。但是,如果在两个不同的第三方库中有一个同名的标头,它就变得不明确了,您需要指定您想要的标题。

通常,最好指定库名,这样就不会发生这种情况,但也是因为对正在阅读代码的人来说,头文件是库的一部分,因为根据头文件名,它并不总是显而易见的。

票数 6
EN

Stack Overflow用户

发布于 2014-02-14 09:42:28

实际上:

代码语言:javascript
复制
#import <Library/Library.h>

有别于:

代码语言:javascript
复制
#import <Library.h>

在第一种情况下,您告诉预处理器,HEADER_SEARCH_PATH中有一个目录,其中包含一个名为“Library”的目录,并且该目录中有一个文件‘Library ary.h’。在第二种情况下,预处理器假设它可以直接在HEADER_SEARCH_PATH中找到“Library.h.h”。如果这两个目录都位于HEADER_SEARCH_PATH中,那么这两个目录之间没有区别。一些CocoaPods在规范中指定

代码语言:javascript
复制
 s.header_mappings_dir = 'SomeFolderWhereSourcesPlaced'

在这种情况下

代码语言:javascript
复制
A directory from where to preserve the folder structure for the headers files. If not provided the headers files are flattened.

因此,如果有header_mappings_dir指定的路径,则需要完整的路径,因为point只指向放置头的根目录。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21763737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档