FlexibleModelProtocol
具有灵活、多样化的转换类型的模型协议
要求
- iOS 11.0+ / macOS 10.13+ / tvOS 13.0+ / watchOS 6.0+
- Xcode 11+
- Swift 5.0+
安装
CocoaPods
CocoaPods 是一个用于 Cocoa 项目的依赖管理器。有关用法和安装说明,请访问其网站。要使用 CocoaPods 将 FlexibleModelProtocol 集成到您的 Xcode 项目中,请在 Podfile
中指定它。
pod 'FlexibleModelProtocol', '~> 1.1'
用法
示例模型
import FlexibleModelProtocol
struct MyModel: FlexibleModelProtocol {
typealias selfType = MyModel
...
}
从数据
- JSON
let myModel: MyModel? = MyModel.fromJson(jsonData: data)
- XML
let myModel: MyModel? = MyModel.fromXML(xmlData: data)
- 词典
let myModel: MyModel? = MyModel.fromDictionary(dictionary: data)
- NSDictionary
let myModel: MyModel? = MyModel.fromNSDictionary(nsDictionary: data)
到数据
- JSON
let jsonString: String = myModel.toJson()
- XML
let xmlString: String? = myModel.toXML()
- 词典
let dictionary: [String:Any]? = myModel.toDictionary()
- NSDictionary
let nsDictionary: NSDictionary? = myModel.toNSDictionary()
拷贝时写入
示例模型
struct MyModel: FlexibleModelProtocol {
...
}
struct MyCopyOnWriteModel: CopyOnWriteModelProtocol {
typealias ModelType = MyModel
var dataWrapper: DataWrapper<MyModel>? = nil
}
FlexibleModelProtocolModel到CopyOnWriteModelProtocolModel
let model: MyModel = MyModel(...)
var emptyCowObj: MyCopyOnWriteModel = MyCopyOnWriteModel()
let cowData: MyCopyOnWriteModel? = model.toCopyOnWriteModel(object: &emptyCowObj)
CopyOnWriteModelProtocolModel 到 FlexibleModelProtocolModel
let cowModel: MyCopyOnWriteModel = CowModel(dataWrapper: DataWrapper(originModel: MyModel(...)))
let flexibleModel: MyModel? = cowModel.toFlexibleProtocolModel()
* 示例项目 *
我编写了一个如何用于单元测试的示例。
联系我们
电子邮件: [email protected]
许可证
FlexibleModelProtocol 根据 MIT 许可证发布。有关详细信息,请参阅LICENSE。