我看到了一些关于CocoaPods的指南,这些指南推荐导入所需的pod库头,如下所示:
#import <Library/Library.h>其中Library是库的名称(例如#import <AFNetworking/AFNetworking.h>)。
我还看到了一些指南,它们推荐导入所需的pod库头,如下所示:
#import <Library.h>(例如#import <AFNetworking.h>)
这两种方法都是编译的,而且似乎都能工作。
有什么区别,应该用哪一种?
发布于 2014-02-13 19:46:44
如果导入的标头是唯一的,这两种方法都可以正常工作。但是,如果在两个不同的第三方库中有一个同名的标头,它就变得不明确了,您需要指定您想要的标题。
通常,最好指定库名,这样就不会发生这种情况,但也是因为对正在阅读代码的人来说,头文件是库的一部分,因为根据头文件名,它并不总是显而易见的。
发布于 2014-02-14 09:42:28
实际上:
#import <Library/Library.h>有别于:
#import <Library.h>在第一种情况下,您告诉预处理器,HEADER_SEARCH_PATH中有一个目录,其中包含一个名为“Library”的目录,并且该目录中有一个文件‘Library ary.h’。在第二种情况下,预处理器假设它可以直接在HEADER_SEARCH_PATH中找到“Library.h.h”。如果这两个目录都位于HEADER_SEARCH_PATH中,那么这两个目录之间没有区别。一些CocoaPods在规范中指定
s.header_mappings_dir = 'SomeFolderWhereSourcesPlaced'在这种情况下
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只指向放置头的根目录。
https://stackoverflow.com/questions/21763737
复制相似问题