Leo*_*rdo 132 objective-c static-libraries xcode4
我是xcode和objective-c的新手.我想问一个非常基本的问题.
我在项目设置中看到"将二进制文件链接到库"时,从工作区中的其他项目导入的框架和库存在差异.
第一个问题,为什么有框架?为什么有图书馆?我的图书馆不能成为一个框架吗?
然后,从.h文件中,如何从导入的静态库中调用类?
我想必须有一个前缀,但我找不到它."ProjName/Myclass.h"都没有工作.
请尽可能具体.
谢谢
Luk*_*ath 140
框架相对于静态库的最大优点是它们可以作为打包编译库二进制文件和任何相关头文件的简洁方法.它们可以放入您的项目中(就像SDK的内置框架,如Foundation和UIKit),它们应该可以正常工作(大部分时间).
大多数框架都包含动态库; 使用Mac Framework模板在Xcode中创建的框架将创建一个动态库.iPhone不支持动态框架,这就是为什么将可重用的iOS代码库作为静态库分发的常见原因.
静态库很好,但是它们需要用户做一些额外的工作.您需要将项目链接到库,并且需要将头文件复制到项目中,或者通过在构建设置中设置适当的头搜索路径将其引用到某个位置.
所以:总之,我的观点是,分发库的最佳方式是作为一个框架.要为iOS创建"静态"框架,您基本上可以采用普通框架并将二进制文件替换为已编译的静态库.这是我分发我的一个库Resty的方式,也是我打算将来分发我的库的方式.
您可能希望查看该项目中提供的Rakefile(如果您不知道,Rake是Ruby相当于Make).我有一些任务用于编译我的项目(使用xcodebuild)并将它们打包为iOS的静态框架.你应该觉得这很有用.
或者,您可能希望使用这些Xcode 4模板来创建iOS框架.
更新2013年12月9日:这是一个受欢迎的答案,所以我想我会编辑说我的图书馆发行的首选已经改变.作为消费者或制作人,我作为任何第三方图书馆的首选是CocoaPods.我使用CocoaPods分发我的库,并提供一个带有头文件作为后备选项的预编译静态库.
| 归档时间: |
|
| 查看次数: |
52586 次 |
| 最近记录: |