2010-04-20 66 views
1

我已经按照this教程来设置一个静态库,其中包含我们正在处理的3个项目中的常见类。在iPhone静态库上暴露标题

这很简单,在xcode上创建一个新的静态库项目,在那里添加代码,将一些标题角色从project更改为public。本教程说我应该递归地将我的库文件夹添加到header search paths

这是正确的路吗?

我的意思是,在我的图书馆项目中,我有文件夹分开,如Global/,InfoScreen/,Additions/。我试图在根文件夹上设置一个LOKit.h文件,并在该文件中#import我需要公开的所有内容。因此,在我的主机项目中,我不需要将文件夹递归添加到标题搜索路径,而只需要#import "LOKit.h"

但我无法得到这个工作,主机项目不会建立抱怨所有我没有添加到LOKit.h的类,即使库项目建立。

所以,我的问题是,什么是权利当我在xCode上设置一个Cocoa Touch静态库项目时暴露头文件的方式?

回答

1

我结束了该项目的根文件夹这样建立LOKit.h

#import "Global/LOCommon.h" 
#import "Additions/LOAdditions.h" 
#import "View/LOCustomView1.h" 
#import "View/LOCustomView2.h" 

而且在我的主机项目,我设置的头搜索路径变量,以我的媒体库的根文件夹,不递归。无论何时我需要,我只需输入LOKit.h

我还包括在这个项目共享库(如JSON,FBConnect和Reachabillity),这是跨项目共享。这样我只需要在一个地方更新这些库,一次。

0

当使用静态库我通常去以下两种方法之一:

如果我创建的库我和它是有点紧耦合到使用的lib项目,我通常创建为源根库在XCode设置中。然后,可以递归地将源根作为变量添加到标题路径。另一方面,如果库不是由我自己完成的,或者完全与我的项目分开维护,我通常会将库的一个版本以及相关的头文件复制到使用它的项目中并引用它们。如果你需要不断的更新,这会更麻烦一些,但是如果库中的某些东西发生了变化,那么不会中断你的应用程序。

+0

谢谢,你的第一个建议几乎是我已经做的。但我真的很想避免将文件夹添加到标题搜索路径递归中,因此我可以选择要公开的内容以及将图书馆用户混淆的内容。 – leolobato 2010-04-26 02:27:09