iphone - 是否有在 iPhone 和 iPad 应用程序之间共享开发代码的最佳实践

标签 iphone ipad ios4

我想构建两个应用程序,一个针对 iPhone 优化,另一个针对 iPad。

这两个应用程序都会调用服务器 API 调用,并且会共享模型对象的相同代码,因此我想在我的 iphone 和 ipad 项目之间共享此代码。

我正在使用 xCode 4,具有工作区的概念(应该允许在项目之间共享代码),但我想知道是否需要为共享代码创建另一个项目。

有人这样做过并愿意分享最佳实践吗?

最佳答案

我更喜欢跨项目共享代码,无论是为了 iPhone/iPad 重用还是任何其他共享场景,通过利用静态库项目来容纳共享代码,并在使用它的所有项目中用作目标依赖项。更详细一点...

您可以使用 Cocoa Touch 静态库模板创建新的 Xcode 项目。该项目可以容纳项目之间的所有共享代码。然后,在任何要使用静态库的应用程序中,您可以通过将静态库项目拖到客户端项目中来添加对静态库项目的项目引用。在此客户端项目中,最好将静态库添加为客户端项目的目标依赖项构建阶段。这会强制在构建客户端项目时重新构建共享库。然后,您将静态库产品添加到客户端项目的“链接二进制文件与库”构建阶段。

并且,作为最后一个警告,您还需要告诉客户端项目静态库的 header 所在的位置。这是由于静态库不包含自己的 header (就像 Mac 上的 Cocoa 框架那样)的结果。为此,只需在客户端项目中找到“ header 搜索路径”build设置,并将路径添加到静态库 header 。我发现引用 Xcode 生成并放置在派生数据中的数据最有用(如果您已将 Xcode 配置为这样做)。

关于iphone - 是否有在 iPhone 和 iPad 应用程序之间共享开发代码的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6950532/

相关文章:

ios - 当 NSPredicate 匹配带有括号的字符串时崩溃

iphone - 选择行时关闭弹出窗口?

iphone - rightbarbuttonitem不显示

iphone - 在通过触摸 curl 本身消除部分 curl 之前执行代码

ios - 从 iPhone 应用程序启用/禁用 Apple 推送通知?

iphone - 在 .m 上声明委托(delegate)

iphone - 在 iPhone/iPad 应用程序中发送电子邮件时将默认电子邮件更改为其他电子邮件客户端(在非内置应用程序中)

html - 在 Meteor 应用程序中放置苹果全屏元标记

iOS 5 MapKit、MKPlacemark,在 iOS 5 上运行 iOS 4.3 应用程序

iphone - 在 iOS 中更改系统时钟