Git Product home page Git Product logo

modelutility's Introduction

ModelUtility

JSON转Model框架,解决其他类似框架在Swift中使用CoreData的Crash问题以及解析不成功等问题,嵌套类型必须支持,专注于为Swift提供一个强大且稳定的Model框架。

安装

pod 'ModelUtility', :git => 'https://github.com/isunimp/ModelUtility.git'

使用

不使用CoreData
class User: NSObject {
    var id: NSNumber? // 不能使用`Int?` 该类型OC runtime解析不出,会导致属性解析失败
    var userInfo: UserInfo?
}

class UserInfo: NSObject {
    var name: String?
    var age: NSNumber?
}

let JSON = ["id":1,"userInfo":["name":"isunimp","age":22]]
let user =  User.mu_modelWithKeyValues(JSON)

print("id:\(user.id)")                  // 1
print("name:\(user.userInfo?.name)")    // isunimp
print("age:\(user.userInfo?.age)")      // 22
使用CoreData

> 注意:userInfo使用类型为`Transformable`
class User: NSManagedObject {
    @NSManaged var id: NSNumber?
    @NSManaged var userInfo: UserInfo?
}

class UserInfo: NSManagedObject {
    @NSManaged var name: String?
    @NSManaged var age: NSNumber?
}

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let objectContext = appDelegate.managedObjectContext
let JSON = ["id":1,"userInfo":["name":"isunimp","age":22]]
let user =  User.mu_modelWithClass(User.self, keyValues: JSON, inContext: objectContext)

print("id:\(user.id)")                  // 1
print("name:\(user.userInfo?.name)")    // isunimp
print("age:\(user.userInfo?.age)")      // 22

更多功能敬请期待,欢迎issue

modelutility's People

Contributors

isunimp avatar

Watchers

James Cloos avatar Saber avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.