测试经过测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最后发布 | 2015年9月 |
SPM支持SPM | ✗ |
由Anton Doudarev、Matt Isaacs、Anton Doudarev维护。
受CSMapper 和 Mogenerator 的启发,US2MapperKit是一个非常轻量级的映射框架,专门为 Swift 1.2 和 Swift 2.0 设计。
与之前的框架不同,之前的框架是开发者手动创建对象模型,然后稍后再用映射框架进行适配,而US2MapperKit采用了一种以映射为先的方法。通过早上映射到字典数据,US2MapperKit根据映射生成模型对象,并允许通过 WWDC 上关于 面向协议编程 的讲座得到启发进行扩展。
如上所述的简单示例显示了US2MapperKit的内部工作原理。在这个例子中,我们将尝试将一个以字典形式返回的Person对象进行映射。第一步是手动生成一个表示返回数据的plist。这个plist定义了属性、数据类型、与响应字典相关联的映射键以及需要应用任何转换。一旦定义好,构建时脚将会生成两个模型对象文件,以表示模型映射。
图中生成的第一个类代表了内部的 _Person.swift
类,它包含脚本生成的属性定义和两个初始化器,一个是必需的,另一个是可失败。生成的可失败的初始化器接受一个 Dictionary<String, AnyObject>
输入值,该值被解析为模型。内部文件的目的在于支持框架映射响应数据,开发者不应修改该文件,因为脚本将在每次构建项目时重新生成它。
生成的第二个类是 Person.swift
,它继承自内部的 _Person.swift
类。这为开发人员在开发过程中需要添加任何自定义逻辑、属性或协议实现提供了一种方式。这个类只会生成一次,在构建任务中永远不会被覆盖。因此,更新模型映射不会影响外部类中定义的任何逻辑。
根据安装说明配置
将数据映射到一个实例,使用US2MapperKit生成的带有Dictionary
数据的可失败初始化器来解析。
let newInstance = TestModelObject(dataDictionary)
以下是US2MapperKit支持的特性的示例列表。每个示例都提供了如何设置模型映射文件的概述,以及框架中预包装脚本的输出示例。
The MIT License (MIT)
Copyright (c) 2015 ustwo studio inc (www.ustwo.com)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.