原文地址:http://www.iphone-geek.cn/%E7%BC%96%E7%A8%8B/iphone%E9%A1%B9%E7%9B%AE%E4%BD%BF%E7%94%A8%E9%9D%99%E6%80%81%E5%BA%93%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95

由于Apple禁止在iPhone中使用外部框架或动态链接库,所以要重用代码(第三方库或自己的代码)只能选择如下方法:

  1. 直接将代码加入项目。这种方法有点笨。例如,你的一段代码被五个项目共享,如果你发现一个小bug,那么你需要更改五个地方。够麻烦吧?
  2. 使用静态库。这是我经常使用的方法。但Xcode并未为iPhone提供静态库的模板。有两种解决方法:
  • 如果你的项目主要是使用Objective-C(C/C++也可使用,只要做些简单修改),那么你可使用现成的Xcode 模板
  • 通过Mac OS X栏下的Static Library中的BSD Static Library建立一个静态库。但要用于iPhone项目,还需做些修改(需要将项目的Base SDK改为iPhone)。

但怎样在项目中链接静态库呢?如果你熟悉Xcode,那么你可跳过此段。很简单:

  1. 指定静态库的头文件路径Head Search Paths。
  2. 添加静态库到Xcode项目中。

就这么简单。但是且慢,万事大吉了吗?如果你要修改你的静态库呢?你需要从Find中找到你的静态库项目,打开它修改。有点麻烦,不能像 Visual Studio一样将相关项目包括在应用项目中吗?答案是:可以,虽然还是没有Visual Studio中的工作空间好用。但你可以从Xcode中直接打开相关的静态库。方法是使用Xcode的Cross-Project Reference(跨项目参考)。

  1. 将静态库的Xcode项目加入到当前项目。
  2. 右击Targets下本项目,添加到静态库项目的关联。
  3. 在项目下,扩展静态库项目,拖动xxxx.a到Targets下的Link Binary With Libraries。

这样你就可以从当前项目下,双击静态库的项目来打开和修改静态库的代码了。