我已经按照this教程设置了一个静态库,其中包含我们正在处理的3个项目的公共类。
这非常简单,在xcode上创建一个新的静态库项目,在那里添加代码,将project
的一些标题角色更改为public
。该教程说我应该递归地将我的库文件夹添加到header search paths
。
这是正确的方法吗?
我的意思是,在我的图书馆项目中,我将文件分隔在Global/
,InfoScreen/
,Additions/
等文件夹中。我试图在根文件夹上设置一个LOKit.h
文件,并在该文件中#import我需要公开的所有内容。因此,在我的主机项目中,我不需要递归地将文件夹添加到标题搜索路径,而只需#import "LOKit.h"
。
但是我无法使用它,主机项目不会构建抱怨我没有添加到LOKit.h
的所有类,即使库项目已经构建。
所以,我的问题是,当我在xCode上设置Cocoa Touch静态库项目时,暴露头文件的正确方式是什么?
答案 0 :(得分:1)
我最终在项目根文件夹上设置LOKit.h
,如下所示:
#import "Global/LOCommon.h"
#import "Additions/LOAdditions.h"
#import "View/LOCustomView1.h"
#import "View/LOCustomView2.h"
在我的主机项目中,我将标题搜索路径变量设置为我的库的根文件夹,没有递归。每当我需要时,我只需导入LOKit.h
。
我还在这个库项目中包含了跨项目共享的公共库(如JSON,FBConnect和Reachabillity)。这样我只需要在一个地方更新这些库一次。
答案 1 :(得分:0)
使用静态库时,我通常采用以下两种方法之一:
如果我自己创建了库并且它与使用lib的项目有点紧密耦合,我通常会在XCode设置中为库创建源根。然后,您可以递归地将源根作为变量添加到标头路径。
另一方面,如果库不是我的,或者与我的项目完全分开维护,我通常会使用它将库的一个版本加上相关的标题复制到项目中并引用它们。如果您需要不断更新,这会更麻烦,但如果库中的某些内容发生更改,则不会破坏您的应用程序。