代码之家  ›  专栏  ›  技术社区  ›  Chris Kimpton

在项目之间共享iPhone和Mac代码的最佳方法

  •  3
  • Chris Kimpton  · 技术社区  · 16 年前

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

    1. 复制/粘贴-复制并手动保持同步
    2. 让两个Xcode项目指向同一个工作区——一个用于Mac,一个用于iPhone,并共享代码。
    3. 公共图书馆-大概你不能这样做(或者你能)

    谢谢你给我小费。

    3 回复  |  直到 16 年前
        1
  •  6
  •   Louis Gerbarg    16 年前

    有几种方法可以做到这一点。您可以做的第一件事是创建一个在Mac OS X上作为框架构建的项目。因为您不能在iPhone上使用框架,所以可以创建包含相同代码文件的静态库目标。这基本上是可行的,但是头路径是不同的。如果希望头路径相同(即<myframework/myframework.h>),则需要修改静态库头的安装路径,以便将其复制到“$sdk\u root/usr/local/include/myframework”中,并确保/usr/local/include是包含的头搜索路径。然后需要将库和头文件安装到每个sdk_根目录中。

    我开始做上述的工作,但我发现这是一种皇家的痛苦。所以我最终做了一个2的变体。基本上,我通过在我的iPhone项目根目录中创建一个名为“externals”的目录,然后在externals文件夹中创建一个名为“myframework”的目录来获得相同的头路径。这是我复制的文件夹,我将框架文件拖到.findally我添加externals文件夹作为系统头路径(这无疑是一种严重的入侵)。您需要手动将新文件添加到iPhone项目中,但我发现将静态libs安装到构建根目录中并没有那么麻烦。

        2
  •  1
  •   Community paulsm4    7 年前

    我不确定先前答案的建议是否有效。如果你看我的 previous question 你会发现我在iPhone上加载自定义框架失败,尽管这个框架在Mac上运行良好。

    我会用第二种方法。

        3
  •  -2
  •   Lee    16 年前

    您可以用JavaScript、CSS和HTML开发应用程序。您将分别在Mac和iPhone上使用WebView和UIWebView对象。你可以在WebView对象中做任何你想做的事情,甚至调用Objective-C。

    这里是QuickConnectPhone安装程序 https://sourceforge.net/projects/quickconnect/ ,将QuickConnectMac和QuickConnectPhone模板安装到Xcode中。

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

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

    它应该让你做你想做的事情更容易。