SwiftImport

Type safe core data from JSON import library


License
MIT
Install
pod try SwiftImport

Documentation

SwiftImport

Build Status Version License Platform

Requirements

Usage

import SwiftImport

extension User {

    @NSManaged var lastName: String?
    @NSManaged var name: String?
    @NSManaged var userId: NSNumber?
    @NSManaged var createdEvents: NSSet?
    @NSManaged var homeCity: City?

}

extension User {
   override class func mapped() -> [String : String] { // if keys are the same dont need to provide map
      return [ "userId" : "id", "lastName" : "last_name", "homeCity" : "home_city", "createdEvents" : "events"]
   }

   override class func relatedByAttribute() -> String {
      return "userId"
   }

   override class func relatedJsonKey() -> String {
      return "id"
   }

}

...

do {

    let data = //...data from responce or something else
    let user = try SwiftImport<User>.importObject <^> JSONObject -<< JSONObjectWithData -<< data <*> context
} catch {
    //handle error here (ImportError.InvalidJSON)
}

...

or if u prefer normal  sintax ;)

do {
    let users = try SwiftImport<User>.importObjects(json)(context: context)
} catch {
    handle error
}

Installation

SwiftImport is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "SwiftImport"

TODO

Author

sshulga, sergdort@gmail.com

License

SwiftImport is available under the MIT license. See the LICENSE file for more info.