我的想法是,我有一个应针对不同客户端定制的应用程序模板。主要目标是为许多个性化的应用程序提供几乎相同的功能。

Xcode项目组织(也许是管理)的最佳方法是什么,以便为每个客户的应用程序实现以下几点:

  • 总是为视觉元素(控件, View ,图标等)设置不同的图像;
  • 很少有XIB文件用于小型UI结构修改;
  • 可视化自定义-代码级别;
  • 小功能修改;
  • 可以切换回以前的个性化版本;
  • 一个功能引擎(例如搜索功能);


  • 目前,对于每个个性化请求,我都在同一项目的根目录中创建新的项目文件,并在相应的 XIB文件中创建,图像设置源文件(对于某些功能请求)目录。每个项目文件都有对主源文件目录(引擎)的引用。

    但是我认为这不是组织此类项目的最佳方法。

    最佳答案

    创建项目模板-或仅包含模板的zip文件。

    首先,确定可以在哪里使用(例如)xml defs而不是覆盖和其他源代码级更改。



    将占位符资源添加到项目模板



    将其添加到项目中,通过vc引用更改(如果已更改)



    核心库,在所有项目中共享。如果库很大,请考虑使用c或c++。 objc无法剥离。它包含实现 stub ,以及通用代码,基类和接口(interface)。



    扩展核心类的接口(interface),以便子类可以轻松实现频繁的更改。这些文件是模板的一部分。



    它应该在vc中,并且还应该跟踪依赖版本。



    未定义的工厂函数非常简单:

    id<MONSearchEngineProtocol> MONAppCoreCreateSearchEngine();
    

    在静态库中声明它,但在特定于项目的源之一中定义(并实现必要的功能)。您可以将其添加到其他地方-有些人会将其填充到应用 Controller 中并覆盖它。

    如果您要管理很多,请考虑将资源转移到代码上(而不是管理大量的 Nib )。 Nib 定义了很多代码-这是很多几乎重复的代码要管理。这对于某些资源而言是有意义的,而对于其他资源而言则没有太大意义。

    10-08 07:27