静态库的目的

时间:2009-07-28 00:11:33

标签: iphone cocoa cocoa-touch xcode

我想创建一个连接到Web服务的应用程序核心,下载数据,解析数据然后将其返回给视图控制器。这个核心理想地处理来自多个控制器的请求并抽象掉许多重复的代码。此外,我想将此核心用于mac os x应用程序。这些任务对静态库来说是个好主意吗?另外,如何在我的iPhone App中添加静态库?添加静态库后,如何引用它(即导入语句等)?

2 个答案:

答案 0 :(得分:4)

  

我想创建一个连接到Web服务的应用程序核心,下载数据,解析数据然后将其返回给视图控制器。这个核心理想地处理来自多个控制器的请求并抽象掉许多重复的代码。此外,我想将此核心用于mac os x应用程序。这些任务对静态库来说是个好主意吗?

  

另外,如何在我的iPhone应用程序中添加静态库?

将静态库的目标添加到项目中,然后将其构建产品添加到iPhone应用程序的目标中。当您开始使用Mac OS X应用程序时,也要将库构建产品添加到该目标。

  

添加静态库后,如何引用它(即导入语句等)?

#import是预处理程序指令;您在编译源文件阶段的预处理阶段在头文件上使用它。

编译源文件会生成目标文件,链接器将在下一阶段融合(链接)在一起。此阶段还包括在任何静态库中链接的链接器。

您必须在应用程序目标的链接二进制文件阶段添加库构建产品(来自库目标),以便链接器将库链接到您的应用程序中。

答案 1 :(得分:1)

除非您想在不分发源的情况下分发静态库,否则我无法想到创建静态库。您必须为每个平台重新编译,因此您可以从公共位置添加库.h和.m文件(例如,在添加文件时不要将文件复制到项目中。“添加现有文件”。 ..“选择将允许您在添加时取消选中标记为”将项目复制到目标组的文件夹(如果需要)“的复选框。然后,您对库文件所做的任何更改都将在两个项目中更新。构建静态库只会增加另一层复杂性(额外的目标等),这是不必要的(恕我直言,很抱歉不同意彼得;-)。

最诚挚的问候。