枚举、结构体和协议组成Model

 //定义一个协议
protocol BaseItemProtocal {
var title: String { get set } //属性是可读可写的
var type: CriteriaType { get set }
} struct FilterCondition {
var title: String
var items: [BaseItemProtocal]
} struct BaseNumberItem: BaseItemProtocal {
var title: String
var type: CriteriaType
var valueNumber: Int
} struct BaseRangeItem: BaseItemProtocal {
var title: String
var type: CriteriaType
var valueRange: NSRange
} enum CriteriaType {
case DiabetesType //糖尿病类型
case Age //年龄
case DiagnosisYears //糖龄
case HsLevel //会员类型
case ReportStatus //血糖报告 func title() -> String {
switch self {
case .DiabetesType: return "糖尿病类型"
case .Age: return "年龄"
case .DiagnosisYears: return "糖龄(年)"
case .HsLevel: return "会员类型"
case .ReportStatus: return "血糖报告"
}
} func subTitles() -> [String] {
switch self {
case .DiabetesType: return ["一型", "二型", "妊娠", "其他"]
case .Age: return ["0-20", "21-40", "41-60", "61-80", "80以上"]
case .DiagnosisYears: return ["0-5", "6-10", "11-15", "16-20", "21-25", "26-30", "30以上"]
case .HsLevel: return ["银卡", "金卡", "白金卡", "钻石卡", "非会员"]
case .ReportStatus: return ["已生成", "未生成"]
}
} func items() -> [BaseItemProtocal] {
switch self {
case .DiabetesType:
return [BaseNumberItem(title: "一型", type: .DiabetesType, valueNumber: ),
BaseNumberItem(title: "二型", type: .DiabetesType, valueNumber: ),
BaseNumberItem(title: "妊娠", type: .DiabetesType, valueNumber: ),
BaseNumberItem(title: "其他", type: .DiabetesType, valueNumber: )]
case .Age:
return [BaseRangeItem(title: "0-20", type: .Age, valueRange: NSMakeRange(, )),
BaseRangeItem(title: "21-40", type: .Age, valueRange: NSMakeRange(, )),
BaseRangeItem(title: "41-60", type: .Age, valueRange: NSMakeRange(, )),
BaseRangeItem(title: "61-80", type: .Age, valueRange: NSMakeRange(, )),
BaseRangeItem(title: "80以上", type: .Age, valueRange: NSMakeRange(, Int.max))]
case .DiagnosisYears:
return [BaseRangeItem(title: "0-5", type: .DiagnosisYears, valueRange: NSMakeRange(, )),
BaseRangeItem(title: "6-10", type: .DiagnosisYears, valueRange: NSMakeRange(, )),
BaseRangeItem(title: "11-15", type: .DiagnosisYears, valueRange: NSMakeRange(, )),
BaseRangeItem(title: "16-20", type: .DiagnosisYears, valueRange: NSMakeRange(, )),
BaseRangeItem(title: "21-25", type: .DiagnosisYears, valueRange: NSMakeRange(, )),
BaseRangeItem(title: "26-30", type: .DiagnosisYears, valueRange: NSMakeRange(, )),
BaseRangeItem(title: "30以上", type: .DiagnosisYears, valueRange: NSMakeRange(, Int.max))]
case .HsLevel:
return [BaseNumberItem(title: "银卡", type: .HsLevel, valueNumber: ),
BaseNumberItem(title: "金卡", type: .HsLevel, valueNumber: ),
BaseNumberItem(title: "白金卡", type: .HsLevel, valueNumber: ),
BaseNumberItem(title: "钻石卡", type: .HsLevel, valueNumber: ),
BaseNumberItem(title: "非会员", type: .HsLevel, valueNumber: )]
case .ReportStatus:
return [BaseNumberItem(title: "已生成", type: .ReportStatus, valueNumber: ),
BaseNumberItem(title: "未生成", type: .ReportStatus, valueNumber: )]
}
}
} //使用
let title = CriteriaType.DiabetesType.title()
print("---------->枚举:\(title)") let items = CriteriaType.DiabetesType.items() print("----------------->枚举数组:\(items)")

打印结果:

---------->枚举:糖尿病类型

----------------->枚举数组:[SwiftTest.BaseNumberItem(title: "一型", type: SwiftTest.CriteriaType.DiabetesType, valueNumber: 1), SwiftTest.BaseNumberItem(title: "二型", type: SwiftTest.CriteriaType.DiabetesType, valueNumber: 2), SwiftTest.BaseNumberItem(title: "妊娠", type: SwiftTest.CriteriaType.DiabetesType, valueNumber: 3), SwiftTest.BaseNumberItem(title: "其他", type: SwiftTest.CriteriaType.DiabetesType, valueNumber: 4)]

数据模型Model(I)的更多相关文章

  1. Entity Framework 学习笔记(二)之数据模型 Model 使用过程

    Entity Framework  数据模型 Model 创建的使用: 开发环境:VS2012 数据库:SQL Server 2008 Entity Framework  版本:6.12 下面是新建的 ...

  2. C#:CodeSmith根据数据库中的表创建C#数据模型Model + 因为没有钱买正版,所以附加自己写的小代码

    对于C#面向对象的思想,我们习惯于将数据库中的表创建对应的数据模型: 但假如数据表很多时,我们手动增加模型类会显得很浪费时间: 这个时候有些人会用微软提供的EntityFrameWork,这个框架很强 ...

  3. 数据模型model设置、生成数据迁移文件、执行数据迁移文件

    一.model的配置 1.创建数据库 2.安装pymysql 3.修改配置文件 数据库连接配置 DATABASES = {'default': {'ENGINE': 'django.db.backen ...

  4. springMVC数据模型model,modelmap,map,@ModelAttribute的相互关系

    结论: a.注解方法中形参为model,modelmap,map一个或几个时,他们指向的引用对象相同即他们的值相同. b.当使用@ModelAttribute注解请求参数时,springmvc自动将该 ...

  5. Django 定义数据模型

    如何定义数据模型: (1) 在 MVC 设计模式中,M 表示数据模型 ( Model ),负责业务对象与数据库的映射,我们可以通过应用的 models.py 来定义数据模型(2) Model 采用了 ...

  6. MVC EF Model First

    1 在Models下新建实体数据模型Model.edmx 2 在Model.edmx中点右键建立各个实体,增加Scalar Property 3 空白处点右键,添加关系,勾选增加外键 4 保存Mode ...

  7. MVC4 Model View Controller分离成独立项目

    适合人群:了解MVC项目的程序员 开发工具:vs2012 开发语言:C# 小项目或功能比较单一的项目可以直接新建一个MVC基本项目类型即可,但随着需求不断迭代,项目的功能模块越来越多,甚至有些模块可以 ...

  8. 订单业务楼层化 view管理器和model管理器进行了model和view的全面封装处理 三端不得不在每个业务入口上线时约定好降级开关,于是代码中充满了各种各样的降级开关字段

    京东APP订单业务楼层化技术实践解密 原创 杜丹 留成 博侃 京东零售技术 2020-09-29 https://mp.weixin.qq.com/s/2oExMjh70Kyveiwh8wOBVA 用 ...

  9. iOS开发之多种Cell高度自适应实现方案的UI流畅度分析

    本篇博客的主题是关于UI操作流畅度优化的一篇博客,我们以TableView中填充多个根据内容自适应高度的Cell来作为本篇博客的使用场景.当然Cell高度的自适应网上的解决方案是铺天盖地呢,今天我们的 ...

随机推荐

  1. 手动建立mapping以及增加属性

    只能创建index时手动建立mapping,或者新增field mapping,但是不能update field mapping 1.手动建立mappingPUT /website{ "ma ...

  2. python wmi模块 获取windows内部信息

    WMI (Windows Management Instrumentation) 模块可用于获取 Windows 内部信息,在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获 ...

  3. jenkins+maven+gitlab触发构建

    1.安装插件 安装gitlab插件 回到项目配置在“构建触发器”那里有一个Build when a change is pushed to GitLab. GitLab webhook选项复制选项里的 ...

  4. NYOJ 食物链(WA)

    1.WA代码 思路:预先分好3类,对每一行数据进行分类和真话假话判断 WA原因:前面某些行的数据 需要依赖 后面某些行给的数据 才能进行分类 初步改正思路( 对于前面给的无法直接分类的数据进行记录,等 ...

  5. python3 判断字符串是否为IP

    #!/usr/bin/python3 # -*- coding: utf-8 -*- import re ip = "192.168.1.1" ip = re.findall(&q ...

  6. CLR总览

    Contents 第1章CLR的执行模型... 4 1.1将源代码编译成托管代码模块... 4 1.2 将托管模块合并成程序集... 6 1.3加载公共语言运行时... 7 1.4执行程序集的代码.. ...

  7. 笔记本(ThinkPad)怎样关闭触摸板

    随着笔记本电脑的普及,人们越来越习惯于出门使用笔记本,笔记本的便捷高效也大幅度地提升了人们的工作效率.但是如果居家使用笔记本电脑,也有其不便之处.比如在键盘上打字,很容易就会喷到触摸板,以至于光标一下 ...

  8. 如何使用Hive&R从Hadoop集群中提取数据进行分析

    一个简单的例子! 环境:CentOS6.5 Hadoop集群.Hive.R.RHive,具体安装及调试方法见博客内文档. 1.分析题目 --有一个用户数据样本(表名huserinfo)10万数据左右: ...

  9. test4

  10. Cocos Code IDE (下载地址)

    Cocos Code IDE 1.2.0 下载地址       Cocos Code IDE 1.2.0 Win32 下载地址: http://www.cocos2d-x.org/filedown/c ...