XCode 4中框架和静态库的区别以及如何调用它们?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (40)

我对xcode和objective-c颇为陌生。我想问一个非常基本的问题。

我发现,在项目设置中“将二进制链接到库”时,从工作区中的其他项目导入的框架和库存在差异。

第一个问题,为什么会有框架?为什么还有一个库?我的库不能成为一个框架吗?

然后,从.h文件中,我怎么能从我导入的静态库中调用类?

提问于
用户回答回答于

与静态库相比,框架最大的优点是它们可以作为打包编译库二进制文件和任何相关头文件的简洁方式。它们可以放到你的项目中(就像SDK的内置框架,比如Foundation和UIKit),它们应该可以工作。

大多数框架包含动态库; 使用Mac Framework模板在Xcode中创建的框架将创建一个动态库。iPhone不支持动态框架,这就是为什么将可重复使用的iOS代码库作为静态库进行分发的原因。

静态库很好,但它们需要用户的额外工作。你需要将项目链接到库,并且需要将头文件复制到项目中,或者通过在构建设置中设置适当的页眉搜索路径来引用它们。

所以:总之,我认为分发你的库的最好方式是作为一个框架。要为iOS创建一个“静态”框架,您可以基本上采用一个正常的框架,并用编译后的静态库替换二进制文件。这是我分发我的一个库的方式,Resty,以及我打算如何分发我的库。

用户回答回答于

框架是库,并提供了一个方便的机制来处理它们。如果你看一个框架“内部”,它只是一个包含静态库和头文件的目录(在某些带有元数据的文件夹结构中)。

如果你想创建自己的框架,你必须创建一个“静态库”并以特定的方式打包。

扫码关注云+社区