NRMirror
简介
NRMirror 帮助您将模型与 Web 服务响应或任何输入字典同步。所以它就像您项目的对象映射器。所以不必担心手动将模型对象映射到您的 json/dictionary,只需声明您的模型并将您的键命名为字典/Json 键,您就完成了。NRMirror 支持 Int、String、Float、Bool 等所有类型,并支持 NRMirror 子类模型。NRMirror 基于 Swift 镜像反射。更多关于 Mirror 的信息,请参阅苹果文档 Mirror 信息
示例
要运行示例项目,请克隆仓库,然后首先从 Example 目录运行 pod install
要求
Xcode 10+ , Swift 4 , iOS 10 和以上
安装
NRMirror 通过 CocoaPods 提供。安装它,只需将以下行添加到您的 Podfile 中。
pod "NRMirror"
用法
let jsonString = "{\"userId\": 1 ,\"name\":\"naveen\",\"emailId\":\"naveen@appster\",\"isActiveUser\": true,\"category\":{\"categoryId\": 2 , \"categoryName\": \"testnaveenrana\"},\"categoryArray\":[{\"categoryId\": 2 , \"categoryName\": \"innerarray\"}],\"subUsers\":[\"array1\",\"array2\"]}"
let dict = try! NSJSONSerialization.JSONObjectWithData(jsonString.dataUsingEncoding(NSUTF8StringEncoding)!, options: .MutableContainers)
let user = User(dict: dict) //You can pass any dictionary not neccessarily from Json only
class User: NRMirror {
var name: String? //optional string
var userId = 0 // integer
var emailId = "" //String
var isActiveUser = false //Bool
var category: Category? //Optional NRMirror subclass
var categoryArray = [Category]() // Array of NRMirror subclass
var subUsers = [String]() //Array of strings
var dictTest = ["categories": [Category]()] //Dictionary with key as a string and value is any NRMirror class
}
class Category: NRMirror {
var categoryId = 1
var categoryName = ""
}
发行说明
NRMirror 不支持以下类型:
- 可选整型,例如 userID: Int?,在 NRMirror 中不被允许。您必须使用默认值进行初始化,如 userId = 0。
- 可选数组,例如 var subUsers = [String?] 不允许。
- 如果您确定值将不是可选的/nil,则使用默认值初始化属性,例如空白字符串或 0(对于 Int)。
## 更新:支持 Xcode 10+
contribuire
欢迎使用贡献!(
- 分叉( http://github.com/naveenrana1309/NRMirror/fork )
- 创建您的功能分支('git checkout -b my-new-feature')
- 提交您的更改('git commit -am 'Add some feature')
- 推送到分支('git push origin my-new-feature')
- 创建新的拉取请求
兼容性
Xcode 10+,Swift 4,iOS 10 及以上版本
作者
拉纳·纳韦恩。查看简介
电子邮件:[email protected]。
查看Facebook页面获取详细信息。
许可证
NRMirror 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。