在项目之间共享iphone和mac代码的最佳方式

时间:2008-10-23 07:27:23

标签: iphone xcode

我意识到Mac和iPhone应用程序之间的视图/控制器内容会有所不同,但模型代码可能相似/相同。那么组织项目的最佳方式是什么,以便共享模型代码?

  1. 复制/粘贴 - 只需将其复制并手动保持同步
  2. 即可
  3. 让2个xcode项目指向同一个工作区 - 一个用于Mac,一个用于IPhone并共享代码。
  4. 公共图书馆 - 大概你不能这样做(或者你可以)
  5. 感谢您的任何提示。

3 个答案:

答案 0 :(得分:6)

有几种方法可以做到这一点。您可以做的第一件事是创建一个在Mac OS X上构建为框架的项目。由于您无法在iPhone上使用框架,您可以创建包含相同代码文件的静态库目标。这基本上有效,但标题路径会有所不同。如果您希望标题路径相同(即< Myframework / MyFramework.h>),则需要修改静态库标题的安装路径,以便将它们复制到“$ SDK_ROOT / usr / local / include / MyFramework“,并确保/ usr / local / include是一个包含的标题搜索路径。然后,您需要将库和标头安装到每个SDK_ROOT中。

我开始做上述事情,但我发现它是一种皇室般的痛苦。所以我最终做了一些#2的变种。基本上,我通过在我的iPhone项目根目录中创建一个名为“Externals”的目录,然后在externals文件夹中使用相应名称(“MyFramework”)命名的目录来获得相同的标头路径。这是我复制的文件夹,我将框架文件拖入。最后,我将Externals文件夹添加为系统标题路径(这无疑是一种严重的黑客攻击)。您需要手动将新文件添加到iPhone项目中,但我发现将静态库安装到我的构建根目录时不那么痛苦。

答案 1 :(得分:1)

我不确定前一个答案中的建议是否有效。如果你查看我的previous question,你会发现我在iPhone上加载自定义框架失败了,即使该框架在Mac上工作正常。

我会选择方法2。

答案 2 :(得分:-2)

您可以使用JavaScript,CSS和HTML开发应用程序。您将分别在Mac和iPhone上使用WebView和UIWebView对象。您可以在WebView对象中执行任何您想要的操作,甚至可以调用Objective-C。

此处https://sourceforge.net/projects/quickconnect/中的QuickConnectiPhone安装程序将QuickConnectMac和QuickConnectiPhone模板安装到Xcode中。

这样,您可以在一个环境中快速创建应用程序,然后将视图迁移到另一个环境中。事实上,QuickConnect框架是高度模块化的。

如果您不想在JavaScript中开发,则可以在安装的模板的Objective-C端找到相同的模块化框架。

它应该让你更容易做你正在尝试的事情。