有一段时间我通过创建2D游戏编程工具包/库来杀死业余时间。它是用Objective C编写的,由一个OpenGL渲染系统和一大堆AI,物理代码,一堆专门的容器和其他游戏相关的东西组成。除了基于OpenGL的View机制(显然)之外,大部分代码都应该可以轻松移植到iOS,因为它只使用Foundation Framework,并且该框架似乎是在iOS上实现的。到目前为止,我只使用Cocoa NSOpenGLView测试各种组件,但现在我想创建一个OS X / iOS库。
我的问题是:
创建可以集成到iOS或OS X应用程序中的Objective-C库的最佳策略是什么?
Xcode'新建项目'对话框仅提供:
iPhone OS ;图书馆:
- Cocoa Touch Static Library。
Mac OS X ,框架和图书馆:
- 可可框架
- 可可图书馆
- 捆绑
- BSD C图书馆
- STL C ++库
- JNI图书馆
乍一看,似乎没有一个用于创建可以集成到OS X或iOS应用程序中的库。
答案 0 :(得分:10)
好吧,我终于找到了正确的Google搜索词集,所以为了回答我自己的问题(DOH!),似乎可以共享代码,至少在iPhone应用程序之间,也可能在iPhone和OS X应用程序之间某些限制。您必须创建一个“静态库”并使用“跨项目引用”:
http://www.clintharris.net/2009/iphone-app-shared-libraries/
http://www.amateurinmotion.com/articles/2009/02/08/creating-a-static-library-for-iphone.html
http://zetetic.net/blog/2010/02/15/building-static-libraries-to-share-code-on-iphone-and-mac-os-x-projects/
http://weston-fl.com/blog/?p=808
尚未对此进行测试,但看起来很有希望。
答案 1 :(得分:6)
您可以使用Targets执行此操作。
为Cocoa库创建一个新项目。然后为iOS静态库添加新目标。在创建新文件时,请确保将它们添加到适当的目标(即大概在您的情况下),并根据需要设置每个目标的构建设置。
在不同平台上使用您的图书馆的项目需要链接到相应的产品,但您不需要复制代码。