Navigation Menu

Skip to content

sergdort/SwiftImport

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.