Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你如何构造一个iphonexcode项目?_Iphone_Xcode_Structure - Fatal编程技术网

你如何构造一个iphonexcode项目?

你如何构造一个iphonexcode项目?,iphone,xcode,structure,Iphone,Xcode,Structure,构建组/文件夹的好方法是什么 我已经用一个普通组按功能(功能加模型的UI等)进行了尝试。我也尝试过UI、模型等 前者将类似的东西放在一起,非常适合iPhone的模式。后者意味着我要多跳一点 你认为呢?这将非常依赖于项目。在我的上一个项目中,我有很多视图,因此我按视图类型组织视图。标准的Xcode MVC文件夹结构如下所示 CoreData:包含数据模型和实体类 扩展:包含一个类(默认的apple类扩展+项目类扩展。) Helper:包含第三方类/框架(如SWRevealController)+桥

构建组/文件夹的好方法是什么

我已经用一个普通组按功能(功能加模型的UI等)进行了尝试。我也尝试过UI、模型等

前者将类似的东西放在一起,非常适合iPhone的模式。后者意味着我要多跳一点


你认为呢?

这将非常依赖于项目。在我的上一个项目中,我有很多视图,因此我按视图类型组织视图。

标准的Xcode MVC文件夹结构如下所示

  • CoreData:包含数据模型和实体类

  • 扩展:包含一个类(默认的apple类扩展+项目类扩展。)

  • Helper:包含第三方类/框架(如SWRevealController)+桥接类(如基于Swift的项目中的Obj C类)

  • 模型:创建一个用于保存数据的单例类(例如AppModel-NSArray、NSDictionary、String等)。Web服务响应解析和存储数据也在这里完成

  • 服务:包含Web服务流程(例如登录验证、HTTP请求/响应)

  • 视图:包含故事板、LaunchScreen.XIB和视图类。创建子文件夹单元格-包含UITableViewCell、UICollectionViewCell等

  • 控制器:包含与UIElements相关的逻辑或代码(例如UIButton的引用+点击操作)


  • 虽然约翰有一点,但实际上我创建了一个项目来说明我认为我的总经理会为一个小的或中等大小的代码库去XCODE项目结构。你可以找到它

    以下是它的概要:

    • 源代码-所有源代码
      • 帐户-帐户相关类(会话相关类、帐户逻辑等)
      • 应用程序-与应用程序相关的类。应用程序委托、配置类等
      • 核心添加-源于apple类的扩展和子类
        • 实用程序-通用实用程序类。有用的扩展、格式化实用程序、便利类等
        • 基于元素的文件夹-UIView、UITableViewCell等的文件夹
      • 本地持久性-本地持久性层。与本地数据库(领域、核心数据)的所有交互
        • 存储库-所有与模型相关的本地持久性逻辑
      • 常数-所有常数。URL、字体、颜色、错误等
      • 模型-所有模型(服务器端实体的表示)。我们还会在这里抛出任何对象映射逻辑
      • 模块-在这里,我们可以找到应用程序的每一部分都按功能划分
        • 基于模块的文件夹-每个文件夹包含所有模块特定的视图控制器、视图、代理和相关类
      • 网络-应用程序的网络层(例如负责与web服务交互的类)
        • 服务-所有与模型相关的web逻辑
    • 情节提要-包含所有情节提要文件
    • 资源-任何其他资源,如媒体、文档、本地化文件等

    我现在越来越多地使用VIPER,结构的很大一部分使用服务(API上的抽象、系统等)来包含逻辑。在MVC中我可以有故事板吗?是的,你可以。我们也可以根据不同的模块对视图中的多个故事板进行分组。难道服务不明确吗?我个人建议使用clean architecture中的Bob叔叔方法。因此,结构和名称应该表示业务领域,而不是您正在使用的技术细节、框架或模式。创建一个示例项目并在您的答案中链接到它的伟大工作!