2009-07-28 21 views
2

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

回答

4

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

是的。

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

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

一旦添加了静态库,我该如何引用它(即导入语句等)?

#import是预处理指令;您可以在编译源文件阶段的预处理阶段将其用于头文件。

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

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

+0

感谢您的回答 - 我仍然有点困惑,我是否需要导入语句?如果是这样,我只是使用静态库中的文件的名称为导入语句? – zpesk 2009-07-28 01:20:57

+0

你需要一个`#import`语句来导入一个头文件。 `#import`(这是一个*预处理*指令)和库(你给*链接器*)没有直接关系。 `#import`的目的是``将库的接口的头文件(例如库中的一个类的接口)``导入到你将要使用该接口的源文件中。 – 2009-07-28 01:43:57

1

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

最好的问候。